home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1994 November: Tool Chest / Dev.CD Nov 94.toast / Tool Chest / !Interfaces / Universal Interfaces 2.0a1 / CIncludes / Files.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-07-17  |  64.5 KB  |  2,233 lines  |  [TEXT/MPS ]

  1. /*
  2.      File:        Files.h
  3.  
  4.      Copyright:    © 1984-1994 by Apple Computer, Inc.
  5.                  All rights reserved.
  6.  
  7.      Version:    Universal Interfaces 2.0a1.  ETO #15, MPW prerelease.  Sunday, July 17, 1994. 
  8.  
  9.      Bugs?:        If you find a problem with this file, send the file and version
  10.                  information (from above) and the problem description to:
  11.  
  12.                      Internet:    apple.bugs@applelink.apple.com
  13.                      AppleLink:    APPLE.BUGS
  14.  
  15. */
  16.  
  17. #ifndef __FILES__
  18. #define __FILES__
  19.  
  20.  
  21. #ifndef __TYPES__
  22. #include <Types.h>
  23. #endif
  24. /*    #include <ConditionalMacros.h>                                */
  25.  
  26. #ifndef __MIXEDMODE__
  27. #include <MixedMode.h>
  28. #endif
  29.  
  30. #ifndef __OSUTILS__
  31. #include <OSUtils.h>
  32. #endif
  33.  
  34. #ifdef __cplusplus
  35. extern "C" {
  36. #endif
  37.  
  38. #if GENERATINGPOWERPC
  39. #pragma options align=mac68k
  40. #endif
  41.  
  42. #ifdef __CFM68K__
  43. #pragma lib_export on
  44. #endif
  45.  
  46.  
  47. enum {
  48. /* Finder Constants */
  49.     fsAtMark                    = 0,
  50.     fOnDesk                        = 1,
  51.     fsCurPerm                    = 0,
  52.     fHasBundle                    = 8192,
  53.     fsRdPerm                    = 1,
  54.     fInvisible                    = 16384,
  55.     fTrash                        = -3,
  56.     fsWrPerm                    = 2,
  57.     fDesktop                    = -2,
  58.     fsRdWrPerm                    = 3,
  59.     fDisk                        = 0,
  60.     fsRdWrShPerm                = 4,
  61.     fsFromStart                    = 1,
  62.     fsFromLEOF                    = 2,
  63.     fsFromMark                    = 3,
  64.     rdVerify                    = 64,
  65.     ioDirFlg                    = 3,                            /* see IM IV-125 */
  66.     ioDirMask                    = 0x10,
  67.     fsRtParID                    = 1,
  68.     fsRtDirID                    = 2
  69. };
  70.  
  71. enum {
  72. /* CatSearch SearchBits Constants */
  73.     fsSBPartialName                = 1,
  74.     fsSBFullName                = 2,
  75.     fsSBFlAttrib                = 4,
  76.     fsSBFlFndrInfo                = 8,
  77.     fsSBFlLgLen                    = 32,
  78.     fsSBFlPyLen                    = 64,
  79.     fsSBFlRLgLen                = 128,
  80.     fsSBFlRPyLen                = 256,
  81.     fsSBFlCrDat                    = 512,
  82.     fsSBFlMdDat                    = 1024,
  83.     fsSBFlBkDat                    = 2048,
  84.     fsSBFlXFndrInfo                = 4096,
  85.     fsSBFlParID                    = 8192,
  86.     fsSBNegate                    = 16384,
  87.     fsSBDrUsrWds                = 8,
  88.     fsSBDrNmFls                    = 16,
  89.     fsSBDrCrDat                    = 512,
  90.     fsSBDrMdDat                    = 1024,
  91.     fsSBDrBkDat                    = 2048,
  92.     fsSBDrFndrInfo                = 4096
  93. };
  94.  
  95. enum {
  96.     fsSBDrParID                    = 8192,
  97. /* vMAttrib (GetVolParms) bit position constants */
  98.     bLimitFCBs                    = 31,
  99.     bLocalWList                    = 30,
  100.     bNoMiniFndr                    = 29,
  101.     bNoVNEdit                    = 28,
  102.     bNoLclSync                    = 27,
  103.     bTrshOffLine                = 26,
  104.     bNoSwitchTo                    = 25,
  105.     bNoDeskItems                = 20,
  106.     bNoBootBlks                    = 19,
  107.     bAccessCntl                    = 18,
  108.     bNoSysDir                    = 17,
  109.     bHasExtFSVol                = 16,
  110.     bHasOpenDeny                = 15,
  111.     bHasCopyFile                = 14,
  112.     bHasMoveRename                = 13,
  113.     bHasDesktopMgr                = 12,
  114.     bHasShortName                = 11,
  115.     bHasFolderLock                = 10,
  116.     bHasPersonalAccessPrivileges = 9
  117. };
  118.  
  119. enum {
  120.     bHasUserGroupList            = 8,
  121.     bHasCatSearch                = 7,
  122.     bHasFileIDs                    = 6,
  123.     bHasBTreeMgr                = 5,
  124.     bHasBlankAccessPrivileges    = 4,
  125. /* Desktop Database icon Constants */
  126.     kLargeIcon                    = 1,
  127.     kLarge4BitIcon                = 2,
  128.     kLarge8BitIcon                = 3,
  129.     kSmallIcon                    = 4,
  130.     kSmall4BitIcon                = 5,
  131.     kSmall8BitIcon                = 6,
  132.     kLargeIconSize                = 256,
  133.     kLarge4BitIconSize            = 512,
  134.     kLarge8BitIconSize            = 1024,
  135.     kSmallIconSize                = 64,
  136.     kSmall4BitIconSize            = 128,
  137.     kSmall8BitIconSize            = 256,
  138. /* Foreign Privilege Model Identifiers */
  139.     fsUnixPriv                    = 1,
  140. /* Version Release Stage Codes */
  141.     developStage                = 0x20,
  142.     alphaStage                    = 0x40
  143. };
  144.  
  145. enum {
  146.     betaStage                    = 0x60,
  147.     finalStage                    = 0x80,
  148. /* Authentication Constants */
  149.     kNoUserAuthentication        = 1,
  150.     kPassword                    = 2,
  151.     kEncryptPassword            = 3,
  152.     kTwoWayEncryptPassword        = 6
  153. };
  154.  
  155. enum {
  156.     hFileInfo,
  157.     dirInfo
  158. };
  159.  
  160. typedef SInt8 CInfoType;
  161.  
  162.  
  163. enum {
  164. /* mapping codes (ioObjType) for MapName & MapID */
  165.     kOwnerID2Name                = 1,
  166.     kGroupID2Name                = 2,
  167.     kOwnerName2ID                = 3,
  168.     kGroupName2ID                = 4,
  169. /* types of oj object to be returned (ioObjType) for _GetUGEntry */
  170.     kReturnNextUser                = 1,
  171.     kReturnNextGroup            = 2,
  172.     kReturnNextUG                = 3
  173. };
  174.  
  175. struct FInfo {
  176.     OSType                            fdType;                        /*the type of the file*/
  177.     OSType                            fdCreator;                    /*file's creator*/
  178.     unsigned short                    fdFlags;                    /*flags ex. hasbundle,invisible,locked, etc.*/
  179.     Point                            fdLocation;                    /*file's location in folder*/
  180.     short                            fdFldr;                        /*folder containing file*/
  181. };
  182. typedef struct FInfo FInfo;
  183.  
  184. struct FXInfo {
  185.     short                            fdIconID;                    /*Icon ID*/
  186.     short                            fdUnused[3];                /*unused but reserved 6 bytes*/
  187.     SInt8                            fdScript;                    /*Script flag and number*/
  188.     SInt8                            fdXFlags;                    /*More flag bits*/
  189.     short                            fdComment;                    /*Comment ID*/
  190.     long                            fdPutAway;                    /*Home Dir ID*/
  191. };
  192. typedef struct FXInfo FXInfo;
  193.  
  194. struct DInfo {
  195.     Rect                            frRect;                        /*folder rect*/
  196.     unsigned short                    frFlags;                    /*Flags*/
  197.     Point                            frLocation;                    /*folder location*/
  198.     short                            frView;                        /*folder view*/
  199. };
  200. typedef struct DInfo DInfo;
  201.  
  202. struct DXInfo {
  203.     Point                            frScroll;                    /*scroll position*/
  204.     long                            frOpenChain;                /*DirID chain of open folders*/
  205.     SInt8                            frScript;                    /*Script flag and number*/
  206.     SInt8                            frXFlags;                    /*More flag bits*/
  207.     short                            frComment;                    /*comment*/
  208.     long                            frPutAway;                    /*DirID*/
  209. };
  210. typedef struct DXInfo DXInfo;
  211.  
  212. struct GetVolParmsInfoBuffer {
  213.     short                            vMVersion;                    /*version number*/
  214.     long                            vMAttrib;                    /*bit vector of attributes (see vMAttrib constants)*/
  215.     Handle                            vMLocalHand;                /*handle to private data*/
  216.     long                            vMServerAdr;                /*AppleTalk server address or zero*/
  217.     long                            vMVolumeGrade;                /*approx. speed rating or zero if unrated*/
  218.     short                            vMForeignPrivID;            /*foreign privilege model supported or zero if none*/
  219. };
  220. typedef struct GetVolParmsInfoBuffer GetVolParmsInfoBuffer;
  221.  
  222. typedef union ParamBlockRec ParamBlockRec;
  223.  
  224. typedef ParamBlockRec *ParmBlkPtr;
  225.  
  226. /*
  227.         IOCompletionProcPtr uses register based parameters on the 68k and cannot
  228.         be written in or called from a high-level language without the help of
  229.         mixed mode or assembly glue.
  230.  
  231.         In:
  232.          => paramBlock      A0.L
  233. */
  234.  
  235. #if GENERATINGCFM
  236. typedef UniversalProcPtr IOCompletionUPP;
  237. #else
  238. typedef Register68kProcPtr IOCompletionUPP;
  239. #endif
  240.  
  241. struct IOParam {
  242.     QElemPtr                        qLink;
  243.     short                            qType;
  244.     short                            ioTrap;
  245.     Ptr                                ioCmdAddr;
  246.     IOCompletionUPP                    ioCompletion;
  247.     OSErr                            ioResult;
  248.     StringPtr                        ioNamePtr;
  249.     short                            ioVRefNum;
  250.     short                            ioRefNum;
  251.     SInt8                            ioVersNum;
  252.     SInt8                            ioPermssn;
  253.     Ptr                                ioMisc;
  254.     Ptr                                ioBuffer;
  255.     long                            ioReqCount;
  256.     long                            ioActCount;
  257.     short                            ioPosMode;
  258.     long                            ioPosOffset;
  259. };
  260. typedef struct IOParam IOParam, *IOParamPtr;
  261.  
  262. struct FileParam {
  263.     QElemPtr                        qLink;
  264.     short                            qType;
  265.     short                            ioTrap;
  266.     Ptr                                ioCmdAddr;
  267.     IOCompletionUPP                    ioCompletion;
  268.     OSErr                            ioResult;
  269.     StringPtr                        ioNamePtr;
  270.     short                            ioVRefNum;
  271.     short                            ioFRefNum;
  272.     SInt8                            ioFVersNum;
  273.     SInt8                            filler1;
  274.     short                            ioFDirIndex;
  275.     SInt8                            ioFlAttrib;
  276.     SInt8                            ioFlVersNum;
  277.     FInfo                            ioFlFndrInfo;
  278.     unsigned long                    ioFlNum;
  279.     unsigned short                    ioFlStBlk;
  280.     long                            ioFlLgLen;
  281.     long                            ioFlPyLen;
  282.     unsigned short                    ioFlRStBlk;
  283.     long                            ioFlRLgLen;
  284.     long                            ioFlRPyLen;
  285.     unsigned long                    ioFlCrDat;
  286.     unsigned long                    ioFlMdDat;
  287. };
  288. typedef struct FileParam FileParam, *FileParamPtr;
  289.  
  290. struct VolumeParam {
  291.     QElemPtr                        qLink;
  292.     short                            qType;
  293.     short                            ioTrap;
  294.     Ptr                                ioCmdAddr;
  295.     IOCompletionUPP                    ioCompletion;
  296.     OSErr                            ioResult;
  297.     StringPtr                        ioNamePtr;
  298.     short                            ioVRefNum;
  299.     long                            filler2;
  300.     short                            ioVolIndex;
  301.     unsigned long                    ioVCrDate;
  302.     unsigned long                    ioVLsBkUp;
  303.     unsigned short                    ioVAtrb;
  304.     unsigned short                    ioVNmFls;
  305.     unsigned short                    ioVDirSt;
  306.     short                            ioVBlLn;
  307.     unsigned short                    ioVNmAlBlks;
  308.     long                            ioVAlBlkSiz;
  309.     long                            ioVClpSiz;
  310.     unsigned short                    ioAlBlSt;
  311.     unsigned long                    ioVNxtFNum;
  312.     unsigned short                    ioVFrBlk;
  313. };
  314. typedef struct VolumeParam VolumeParam, *VolumeParamPtr;
  315.  
  316. struct CntrlParam {
  317.     QElemPtr                        qLink;
  318.     short                            qType;
  319.     short                            ioTrap;
  320.     Ptr                                ioCmdAddr;
  321.     IOCompletionUPP                    ioCompletion;
  322.     OSErr                            ioResult;
  323.     StringPtr                        ioNamePtr;
  324.     short                            ioVRefNum;
  325.     short                            ioCRefNum;
  326.     short                            csCode;
  327.     short                            csParam[11];
  328. };
  329. typedef struct CntrlParam CntrlParam, *CntrlParamPtr;
  330.  
  331. struct SlotDevParam {
  332.     QElemPtr                        qLink;
  333.     short                            qType;
  334.     short                            ioTrap;
  335.     Ptr                                ioCmdAddr;
  336.     IOCompletionUPP                    ioCompletion;
  337.     OSErr                            ioResult;
  338.     StringPtr                        ioNamePtr;
  339.     short                            ioVRefNum;
  340.     short                            ioSRefNum;
  341.     SInt8                            ioSVersNum;
  342.     SInt8                            ioSPermssn;
  343.     Ptr                                ioSMix;
  344.     short                            ioSFlags;
  345.     SInt8                            ioSlot;
  346.     SInt8                            ioID;
  347. };
  348. typedef struct SlotDevParam SlotDevParam, *SlotDevParamPtr;
  349.  
  350. struct MultiDevParam {
  351.     QElemPtr                        qLink;
  352.     short                            qType;
  353.     short                            ioTrap;
  354.     Ptr                                ioCmdAddr;
  355.     IOCompletionUPP                    ioCompletion;
  356.     OSErr                            ioResult;
  357.     StringPtr                        ioNamePtr;
  358.     short                            ioVRefNum;
  359.     short                            ioMRefNum;
  360.     SInt8                            ioMVersNum;
  361.     SInt8                            ioMPermssn;
  362.     Ptr                                ioMMix;
  363.     short                            ioMFlags;
  364.     Ptr                                ioSEBlkPtr;
  365. };
  366. typedef struct MultiDevParam MultiDevParam, *MultiDevParamPtr;
  367.  
  368. union ParamBlockRec {
  369.     IOParam                            ioParam;
  370.     FileParam                        fileParam;
  371.     VolumeParam                        volumeParam;
  372.     CntrlParam                        cntrlParam;
  373.     SlotDevParam                    slotDevParam;
  374.     MultiDevParam                    multiDevParam;
  375. };
  376. struct HFileInfo {
  377.     QElemPtr                        qLink;
  378.     short                            qType;
  379.     short                            ioTrap;
  380.     Ptr                                ioCmdAddr;
  381.     IOCompletionUPP                    ioCompletion;
  382.     OSErr                            ioResult;
  383.     StringPtr                        ioNamePtr;
  384.     short                            ioVRefNum;
  385.     short                            ioFRefNum;
  386.     SInt8                            ioFVersNum;
  387.     SInt8                            filler1;
  388.     short                            ioFDirIndex;
  389.     SInt8                            ioFlAttrib;
  390.     SInt8                            filler2;
  391.     FInfo                            ioFlFndrInfo;
  392.     long                            ioDirID;
  393.     unsigned short                    ioFlStBlk;
  394.     long                            ioFlLgLen;
  395.     long                            ioFlPyLen;
  396.     unsigned short                    ioFlRStBlk;
  397.     long                            ioFlRLgLen;
  398.     long                            ioFlRPyLen;
  399.     unsigned long                    ioFlCrDat;
  400.     unsigned long                    ioFlMdDat;
  401.     unsigned long                    ioFlBkDat;
  402.     FXInfo                            ioFlXFndrInfo;
  403.     long                            ioFlParID;
  404.     long                            ioFlClpSiz;
  405. };
  406. typedef struct HFileInfo HFileInfo;
  407.  
  408. struct DirInfo {
  409.     QElemPtr                        qLink;
  410.     short                            qType;
  411.     short                            ioTrap;
  412.     Ptr                                ioCmdAddr;
  413.     IOCompletionUPP                    ioCompletion;
  414.     OSErr                            ioResult;
  415.     StringPtr                        ioNamePtr;
  416.     short                            ioVRefNum;
  417.     short                            ioFRefNum;
  418.     SInt8                            ioFVersNum;
  419.     SInt8                            filler1;
  420.     short                            ioFDirIndex;
  421.     SInt8                            ioFlAttrib;
  422.     SInt8                            filler2;
  423.     DInfo                            ioDrUsrWds;
  424.     long                            ioDrDirID;
  425.     unsigned short                    ioDrNmFls;
  426.     short                            filler3[9];
  427.     unsigned long                    ioDrCrDat;
  428.     unsigned long                    ioDrMdDat;
  429.     unsigned long                    ioDrBkDat;
  430.     DXInfo                            ioDrFndrInfo;
  431.     long                            ioDrParID;
  432. };
  433. typedef struct DirInfo DirInfo;
  434.  
  435. union CInfoPBRec {
  436.     HFileInfo                        hFileInfo;
  437.     DirInfo                            dirInfo;
  438. };
  439. typedef union CInfoPBRec CInfoPBRec, *CInfoPBPtr;
  440.  
  441. struct CatPositionRec {
  442.     long                            initialize;
  443.     short                            priv[6];
  444. };
  445. typedef struct CatPositionRec CatPositionRec;
  446.  
  447. struct FSSpec {
  448.     short                            vRefNum;
  449.     long                            parID;
  450.     Str63                            name;
  451. };
  452. typedef struct FSSpec FSSpec;
  453.  
  454. typedef FSSpec *FSSpecPtr, **FSSpecHandle;
  455.  
  456. /* pointer to array of FSSpecs */
  457. typedef FSSpecPtr FSSpecArrayPtr;
  458.  
  459. /* The only difference between "const FSSpec*" and "ConstFSSpecPtr" is 
  460.    that as a parameter, ConstFSSpecPtr is allowed to be NULL */
  461. typedef const FSSpec *ConstFSSpecPtr;
  462.  
  463. /* The following are structures to be filled out with the _GetVolMountInfo call
  464.  and passed back into the _VolumeMount call for external file system mounts. */
  465. /* the "signature" of the file system */
  466. typedef OSType VolumeType;
  467.  
  468.  
  469. enum {
  470. /* the signature for AppleShare */
  471.     AppleShareMediaType            = 'afpm'
  472. };
  473.  
  474. struct VolMountInfoHeader {
  475.     short                            length;                        /* length of location data (including self) */
  476.     VolumeType                        media;                        /* type of media.  Variable length data follows */
  477. };
  478. typedef struct VolMountInfoHeader VolMountInfoHeader;
  479.  
  480. typedef VolMountInfoHeader *VolMountInfoPtr;
  481.  
  482. struct AFPVolMountInfo {
  483.     short                            length;                        /* length of location data (including self) */
  484.     VolumeType                        media;                        /* type of media */
  485.     short                            flags;                        /* bits for no messages, no reconnect */
  486.     SInt8                            nbpInterval;                /* NBP Interval parameter (IM2, p.322) */
  487.     SInt8                            nbpCount;                    /* NBP Interval parameter (IM2, p.322) */
  488.     short                            uamType;                    /* User Authentication Method */
  489.     short                            zoneNameOffset;                /* short positive offset from start of struct to Zone Name */
  490.     short                            serverNameOffset;            /* offset to pascal Server Name string */
  491.     short                            volNameOffset;                /* offset to pascal Volume Name string */
  492.     short                            userNameOffset;                /* offset to pascal User Name string */
  493.     short                            userPasswordOffset;            /* offset to pascal User Password string */
  494.     short                            volPasswordOffset;            /* offset to pascal Volume Password string */
  495.     char                            AFPData[144];                /* variable length data may follow */
  496. };
  497. typedef struct AFPVolMountInfo AFPVolMountInfo;
  498.  
  499. typedef AFPVolMountInfo *AFPVolMountInfoPtr;
  500.  
  501. struct DTPBRec {
  502.     QElemPtr                        qLink;
  503.     short                            qType;
  504.     short                            ioTrap;
  505.     Ptr                                ioCmdAddr;
  506.     IOCompletionUPP                    ioCompletion;
  507.     OSErr                            ioResult;
  508.     StringPtr                        ioNamePtr;
  509.     short                            ioVRefNum;
  510.     short                            ioDTRefNum;                    /* desktop refnum */
  511.     short                            ioIndex;
  512.     long                            ioTagInfo;
  513.     Ptr                                ioDTBuffer;
  514.     long                            ioDTReqCount;
  515.     long                            ioDTActCount;
  516.     SInt8                            ioFiller1;
  517.     SInt8                            ioIconType;
  518.     short                            ioFiller2;
  519.     long                            ioDirID;
  520.     OSType                            ioFileCreator;
  521.     OSType                            ioFileType;
  522.     long                            ioFiller3;
  523.     long                            ioDTLgLen;
  524.     long                            ioDTPyLen;
  525.     short                            ioFiller4[14];
  526.     long                            ioAPPLParID;
  527. };
  528. typedef struct DTPBRec DTPBRec;
  529.  
  530. typedef DTPBRec *DTPBPtr;
  531.  
  532. struct HIOParam {
  533.     QElemPtr                        qLink;
  534.     short                            qType;
  535.     short                            ioTrap;
  536.     Ptr                                ioCmdAddr;
  537.     IOCompletionUPP                    ioCompletion;
  538.     OSErr                            ioResult;
  539.     StringPtr                        ioNamePtr;
  540.     short                            ioVRefNum;
  541.     short                            ioRefNum;
  542.     SInt8                            ioVersNum;
  543.     SInt8                            ioPermssn;
  544.     Ptr                                ioMisc;
  545.     Ptr                                ioBuffer;
  546.     long                            ioReqCount;
  547.     long                            ioActCount;
  548.     short                            ioPosMode;
  549.     long                            ioPosOffset;
  550. };
  551. typedef struct HIOParam HIOParam, *HIOParamPtr;
  552.  
  553. struct HFileParam {
  554.     QElemPtr                        qLink;
  555.     short                            qType;
  556.     short                            ioTrap;
  557.     Ptr                                ioCmdAddr;
  558.     IOCompletionUPP                    ioCompletion;
  559.     OSErr                            ioResult;
  560.     StringPtr                        ioNamePtr;
  561.     short                            ioVRefNum;
  562.     short                            ioFRefNum;
  563.     SInt8                            ioFVersNum;
  564.     SInt8                            filler1;
  565.     short                            ioFDirIndex;
  566.     SInt8                            ioFlAttrib;
  567.     SInt8                            ioFlVersNum;
  568.     FInfo                            ioFlFndrInfo;
  569.     long                            ioDirID;
  570.     unsigned short                    ioFlStBlk;
  571.     long                            ioFlLgLen;
  572.     long                            ioFlPyLen;
  573.     unsigned short                    ioFlRStBlk;
  574.     long                            ioFlRLgLen;
  575.     long                            ioFlRPyLen;
  576.     unsigned long                    ioFlCrDat;
  577.     unsigned long                    ioFlMdDat;
  578. };
  579. typedef struct HFileParam HFileParam, *HFileParamPtr;
  580.  
  581. struct HVolumeParam {
  582.     QElemPtr                        qLink;
  583.     short                            qType;
  584.     short                            ioTrap;
  585.     Ptr                                ioCmdAddr;
  586.     IOCompletionUPP                    ioCompletion;
  587.     OSErr                            ioResult;
  588.     StringPtr                        ioNamePtr;
  589.     short                            ioVRefNum;
  590.     long                            filler2;
  591.     short                            ioVolIndex;
  592.     unsigned long                    ioVCrDate;
  593.     unsigned long                    ioVLsMod;
  594.     short                            ioVAtrb;
  595.     unsigned short                    ioVNmFls;
  596.     short                            ioVBitMap;
  597.     short                            ioAllocPtr;
  598.     unsigned short                    ioVNmAlBlks;
  599.     long                            ioVAlBlkSiz;
  600.     long                            ioVClpSiz;
  601.     short                            ioAlBlSt;
  602.     long                            ioVNxtCNID;
  603.     unsigned short                    ioVFrBlk;
  604.     unsigned short                    ioVSigWord;
  605.     short                            ioVDrvInfo;
  606.     short                            ioVDRefNum;
  607.     short                            ioVFSID;
  608.     unsigned long                    ioVBkUp;
  609.     unsigned short                    ioVSeqNum;
  610.     long                            ioVWrCnt;
  611.     long                            ioVFilCnt;
  612.     long                            ioVDirCnt;
  613.     long                            ioVFndrInfo[8];
  614. };
  615. typedef struct HVolumeParam HVolumeParam, *HVolumeParamPtr;
  616.  
  617. struct AccessParam {
  618.     QElemPtr                        qLink;
  619.     short                            qType;
  620.     short                            ioTrap;
  621.     Ptr                                ioCmdAddr;
  622.     IOCompletionUPP                    ioCompletion;
  623.     OSErr                            ioResult;
  624.     StringPtr                        ioNamePtr;
  625.     short                            ioVRefNum;
  626.     short                            filler3;
  627.     short                            ioDenyModes;
  628.     short                            filler4;
  629.     SInt8                            filler5;
  630.     SInt8                            ioACUser;
  631.     long                            filler6;
  632.     long                            ioACOwnerID;
  633.     long                            ioACGroupID;
  634.     long                            ioACAccess;
  635.     long                            ioDirID;
  636. };
  637. typedef struct AccessParam AccessParam, *AccessParamPtr;
  638.  
  639. struct ObjParam {
  640.     QElemPtr                        qLink;
  641.     short                            qType;
  642.     short                            ioTrap;
  643.     Ptr                                ioCmdAddr;
  644.     IOCompletionUPP                    ioCompletion;
  645.     OSErr                            ioResult;
  646.     StringPtr                        ioNamePtr;
  647.     short                            ioVRefNum;
  648.     short                            filler7;
  649.     short                            ioObjType;
  650.     StringPtr                        ioObjNamePtr;
  651.     long                            ioObjID;
  652. };
  653. typedef struct ObjParam ObjParam, *ObjParamPtr;
  654.  
  655. struct CopyParam {
  656.     QElemPtr                        qLink;
  657.     short                            qType;
  658.     short                            ioTrap;
  659.     Ptr                                ioCmdAddr;
  660.     IOCompletionUPP                    ioCompletion;
  661.     OSErr                            ioResult;
  662.     StringPtr                        ioNamePtr;
  663.     short                            ioVRefNum;
  664.     short                            ioDstVRefNum;
  665.     short                            filler8;
  666.     StringPtr                        ioNewName;
  667.     StringPtr                        ioCopyName;
  668.     long                            ioNewDirID;
  669.     long                            filler14;
  670.     long                            filler15;
  671.     long                            ioDirID;
  672. };
  673. typedef struct CopyParam CopyParam, *CopyParamPtr;
  674.  
  675. struct WDParam {
  676.     QElemPtr                        qLink;
  677.     short                            qType;
  678.     short                            ioTrap;
  679.     Ptr                                ioCmdAddr;
  680.     IOCompletionUPP                    ioCompletion;
  681.     OSErr                            ioResult;
  682.     StringPtr                        ioNamePtr;
  683.     short                            ioVRefNum;
  684.     short                            filler9;
  685.     short                            ioWDIndex;
  686.     long                            ioWDProcID;
  687.     short                            ioWDVRefNum;
  688.     short                            filler10;
  689.     long                            filler11;
  690.     long                            filler12;
  691.     long                            filler13;
  692.     long                            ioWDDirID;
  693. };
  694. typedef struct WDParam WDParam, *WDParamPtr;
  695.  
  696. struct FIDParam {
  697.     QElemPtr                        qLink;
  698.     short                            qType;
  699.     short                            ioTrap;
  700.     Ptr                                ioCmdAddr;
  701.     IOCompletionUPP                    ioCompletion;
  702.     OSErr                            ioResult;
  703.     StringPtr                        ioNamePtr;
  704.     short                            ioVRefNum;
  705.     long                            filler14;
  706.     StringPtr                        ioDestNamePtr;
  707.     long                            filler15;
  708.     long                            ioDestDirID;
  709.     long                            filler16;
  710.     long                            filler17;
  711.     long                            ioSrcDirID;
  712.     short                            filler18;
  713.     long                            ioFileID;
  714. };
  715. typedef struct FIDParam FIDParam, *FIDParamPtr;
  716.  
  717. struct CSParam {
  718.     QElemPtr                        qLink;
  719.     short                            qType;
  720.     short                            ioTrap;
  721.     Ptr                                ioCmdAddr;
  722.     IOCompletionUPP                    ioCompletion;
  723.     OSErr                            ioResult;
  724.     StringPtr                        ioNamePtr;
  725.     short                            ioVRefNum;
  726.     FSSpecPtr                        ioMatchPtr;
  727.     long                            ioReqMatchCount;
  728.     long                            ioActMatchCount;
  729.     long                            ioSearchBits;
  730.     CInfoPBPtr                        ioSearchInfo1;
  731.     CInfoPBPtr                        ioSearchInfo2;
  732.     long                            ioSearchTime;
  733.     CatPositionRec                    ioCatPosition;
  734.     Ptr                                ioOptBuffer;
  735.     long                            ioOptBufSize;
  736. };
  737. typedef struct CSParam CSParam, *CSParamPtr;
  738.  
  739. struct ForeignPrivParam {
  740.     QElemPtr                        qLink;
  741.     short                            qType;
  742.     short                            ioTrap;
  743.     Ptr                                ioCmdAddr;
  744.     IOCompletionUPP                    ioCompletion;
  745.     OSErr                            ioResult;
  746.     StringPtr                        ioNamePtr;
  747.     short                            ioVRefNum;
  748.     long                            ioFiller21;
  749.     long                            ioFiller22;
  750.     Ptr                                ioForeignPrivBuffer;
  751.     long                            ioForeignPrivActCount;
  752.     long                            ioForeignPrivReqCount;
  753.     long                            ioFiller23;
  754.     long                            ioForeignPrivDirID;
  755.     long                            ioForeignPrivInfo1;
  756.     long                            ioForeignPrivInfo2;
  757.     long                            ioForeignPrivInfo3;
  758.     long                            ioForeignPrivInfo4;
  759. };
  760. typedef struct ForeignPrivParam ForeignPrivParam, *ForeignPrivParamPtr;
  761.  
  762. union HParamBlockRec {
  763.     HIOParam                        ioParam;
  764.     HFileParam                        fileParam;
  765.     HVolumeParam                    volumeParam;
  766.     AccessParam                        accessParam;
  767.     ObjParam                        objParam;
  768.     CopyParam                        copyParam;
  769.     WDParam                            wdParam;
  770.     FIDParam                        fidParam;
  771.     CSParam                            csParam;
  772.     ForeignPrivParam                foreignPrivParam;
  773. };
  774. typedef union HParamBlockRec HParamBlockRec;
  775.  
  776. typedef HParamBlockRec *HParmBlkPtr;
  777.  
  778. struct CMovePBRec {
  779.     QElemPtr                        qLink;
  780.     short                            qType;
  781.     short                            ioTrap;
  782.     Ptr                                ioCmdAddr;
  783.     IOCompletionUPP                    ioCompletion;
  784.     OSErr                            ioResult;
  785.     StringPtr                        ioNamePtr;
  786.     short                            ioVRefNum;
  787.     long                            filler1;
  788.     StringPtr                        ioNewName;
  789.     long                            filler2;
  790.     long                            ioNewDirID;
  791.     long                            filler3[2];
  792.     long                            ioDirID;
  793. };
  794. typedef struct CMovePBRec CMovePBRec;
  795.  
  796. typedef CMovePBRec *CMovePBPtr;
  797.  
  798. struct WDPBRec {
  799.     QElemPtr                        qLink;
  800.     short                            qType;
  801.     short                            ioTrap;
  802.     Ptr                                ioCmdAddr;
  803.     IOCompletionUPP                    ioCompletion;
  804.     OSErr                            ioResult;
  805.     StringPtr                        ioNamePtr;
  806.     short                            ioVRefNum;
  807.     short                            filler1;
  808.     short                            ioWDIndex;
  809.     long                            ioWDProcID;
  810.     short                            ioWDVRefNum;
  811.     short                            filler2[7];
  812.     long                            ioWDDirID;
  813. };
  814. typedef struct WDPBRec WDPBRec;
  815.  
  816. typedef WDPBRec *WDPBPtr;
  817.  
  818. struct FCBPBRec {
  819.     QElemPtr                        qLink;
  820.     short                            qType;
  821.     short                            ioTrap;
  822.     Ptr                                ioCmdAddr;
  823.     IOCompletionUPP                    ioCompletion;
  824.     OSErr                            ioResult;
  825.     StringPtr                        ioNamePtr;
  826.     short                            ioVRefNum;
  827.     short                            ioRefNum;
  828.     short                            filler;
  829.     short                            ioFCBIndx;
  830.     short                            filler1;
  831.     long                            ioFCBFlNm;
  832.     short                            ioFCBFlags;
  833.     unsigned short                    ioFCBStBlk;
  834.     long                            ioFCBEOF;
  835.     long                            ioFCBPLen;
  836.     long                            ioFCBCrPs;
  837.     short                            ioFCBVRefNum;
  838.     long                            ioFCBClpSiz;
  839.     long                            ioFCBParID;
  840. };
  841. typedef struct FCBPBRec FCBPBRec;
  842.  
  843. typedef FCBPBRec *FCBPBPtr;
  844.  
  845. struct VCB {
  846.     QElemPtr                        qLink;
  847.     short                            qType;
  848.     short                            vcbFlags;
  849.     unsigned short                    vcbSigWord;
  850.     unsigned long                    vcbCrDate;
  851.     unsigned long                    vcbLsMod;
  852.     short                            vcbAtrb;
  853.     unsigned short                    vcbNmFls;
  854.     short                            vcbVBMSt;
  855.     short                            vcbAllocPtr;
  856.     unsigned short                    vcbNmAlBlks;
  857.     long                            vcbAlBlkSiz;
  858.     long                            vcbClpSiz;
  859.     short                            vcbAlBlSt;
  860.     long                            vcbNxtCNID;
  861.     unsigned short                    vcbFreeBks;
  862.     Str27                            vcbVN;
  863.     short                            vcbDrvNum;
  864.     short                            vcbDRefNum;
  865.     short                            vcbFSID;
  866.     short                            vcbVRefNum;
  867.     Ptr                                vcbMAdr;
  868.     Ptr                                vcbBufAdr;
  869.     short                            vcbMLen;
  870.     short                            vcbDirIndex;
  871.     short                            vcbDirBlk;
  872.     unsigned long                    vcbVolBkUp;
  873.     unsigned short                    vcbVSeqNum;
  874.     long                            vcbWrCnt;
  875.     long                            vcbXTClpSiz;
  876.     long                            vcbCTClpSiz;
  877.     unsigned short                    vcbNmRtDirs;
  878.     long                            vcbFilCnt;
  879.     long                            vcbDirCnt;
  880.     long                            vcbFndrInfo[8];
  881.     unsigned short                    vcbVCSize;
  882.     unsigned short                    vcbVBMCSiz;
  883.     unsigned short                    vcbCtlCSiz;
  884.     unsigned short                    vcbXTAlBlks;
  885.     unsigned short                    vcbCTAlBlks;
  886.     short                            vcbXTRef;
  887.     short                            vcbCTRef;
  888.     Ptr                                vcbCtlBuf;
  889.     long                            vcbDirIDM;
  890.     short                            vcbOffsM;
  891. };
  892. typedef struct VCB VCB;
  893.  
  894. struct DrvQEl {
  895.     QElemPtr                        qLink;
  896.     short                            qType;
  897.     short                            dQDrive;
  898.     short                            dQRefNum;
  899.     short                            dQFSID;
  900.     unsigned short                    dQDrvSz;
  901.     unsigned short                    dQDrvSz2;
  902. };
  903. typedef struct DrvQEl DrvQEl;
  904.  
  905. typedef DrvQEl *DrvQElPtr;
  906.  
  907. enum {
  908.     uppIOCompletionProcInfo = kRegisterBased
  909.          | REGISTER_ROUTINE_PARAMETER(1, kRegisterA0, SIZE_CODE(sizeof(ParmBlkPtr)))
  910. };
  911.  
  912. #if GENERATINGCFM
  913. #define NewIOCompletionProc(userRoutine)        \
  914.         (IOCompletionUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppIOCompletionProcInfo, GetCurrentArchitecture())
  915. #else
  916. #define NewIOCompletionProc(userRoutine)        \
  917.         ((IOCompletionUPP) (userRoutine))
  918. #endif
  919.  
  920. #if GENERATINGCFM
  921. #define CallIOCompletionProc(userRoutine, paramBlock)        \
  922.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppIOCompletionProcInfo, (paramBlock))
  923. #else
  924. /* (*IOCompletionProcPtr) cannot be called from a high-level language without the Mixed Mode Manager */
  925. #endif
  926.  
  927. #define PBOpen(pb, async) ((async) ? PBOpenAsync(pb) : PBOpenSync(pb))
  928.  
  929. #if !GENERATINGCFM
  930. #pragma parameter __D0 PBOpenSync(__A0)
  931. #endif
  932. extern pascal OSErr PBOpenSync(ParmBlkPtr paramBlock)
  933.  ONEWORDINLINE(0xA000);
  934.  
  935. #if !GENERATINGCFM
  936. #pragma parameter __D0 PBOpenAsync(__A0)
  937. #endif
  938. extern pascal OSErr PBOpenAsync(ParmBlkPtr paramBlock)
  939.  ONEWORDINLINE(0xA400);
  940.  
  941. #if !GENERATINGCFM
  942. #pragma parameter __D0 PBOpenImmed(__A0)
  943. #endif
  944. extern pascal OSErr PBOpenImmed(ParmBlkPtr paramBlock)
  945.  ONEWORDINLINE(0xA200);
  946. #define PBClose(pb, async) ((async) ? PBCloseAsync(pb) : PBCloseSync(pb))
  947.  
  948. #if !GENERATINGCFM
  949. #pragma parameter __D0 PBCloseSync(__A0)
  950. #endif
  951. extern pascal OSErr PBCloseSync(ParmBlkPtr paramBlock)
  952.  ONEWORDINLINE(0xA001);
  953.  
  954. #if !GENERATINGCFM
  955. #pragma parameter __D0 PBCloseAsync(__A0)
  956. #endif
  957. extern pascal OSErr PBCloseAsync(ParmBlkPtr paramBlock)
  958.  ONEWORDINLINE(0xA401);
  959.  
  960. #if !GENERATINGCFM
  961. #pragma parameter __D0 PBCloseImmed(__A0)
  962. #endif
  963. extern pascal OSErr PBCloseImmed(ParmBlkPtr paramBlock)
  964.  ONEWORDINLINE(0xA201);
  965. #define PBRead(pb, async) ((async) ? PBReadAsync(pb) : PBReadSync(pb))
  966.  
  967. #if !GENERATINGCFM
  968. #pragma parameter __D0 PBReadSync(__A0)
  969. #endif
  970. extern pascal OSErr PBReadSync(ParmBlkPtr paramBlock)
  971.  ONEWORDINLINE(0xA002);
  972.  
  973. #if !GENERATINGCFM
  974. #pragma parameter __D0 PBReadAsync(__A0)
  975. #endif
  976. extern pascal OSErr PBReadAsync(ParmBlkPtr paramBlock)
  977.  ONEWORDINLINE(0xA402);
  978.  
  979. #if !GENERATINGCFM
  980. #pragma parameter __D0 PBReadImmed(__A0)
  981. #endif
  982. extern pascal OSErr PBReadImmed(ParmBlkPtr paramBlock)
  983.  ONEWORDINLINE(0xA202);
  984. #define PBWrite(pb, async) ((async) ? PBWriteAsync(pb) : PBWriteSync(pb))
  985.  
  986. #if !GENERATINGCFM
  987. #pragma parameter __D0 PBWriteSync(__A0)
  988. #endif
  989. extern pascal OSErr PBWriteSync(ParmBlkPtr paramBlock)
  990.  ONEWORDINLINE(0xA003);
  991.  
  992. #if !GENERATINGCFM
  993. #pragma parameter __D0 PBWriteAsync(__A0)
  994. #endif
  995. extern pascal OSErr PBWriteAsync(ParmBlkPtr paramBlock)
  996.  ONEWORDINLINE(0xA403);
  997.  
  998. #if !GENERATINGCFM
  999. #pragma parameter __D0 PBWriteImmed(__A0)
  1000. #endif
  1001. extern pascal OSErr PBWriteImmed(ParmBlkPtr paramBlock)
  1002.  ONEWORDINLINE(0xA203);
  1003. #define PBGetVInfo(pb, async) ((async) ? PBGetVInfoAsync(pb) : PBGetVInfoSync(pb))
  1004.  
  1005. #if !GENERATINGCFM
  1006. #pragma parameter __D0 PBGetVInfoSync(__A0)
  1007. #endif
  1008. extern pascal OSErr PBGetVInfoSync(ParmBlkPtr paramBlock)
  1009.  ONEWORDINLINE(0xA007);
  1010.  
  1011. #if !GENERATINGCFM
  1012. #pragma parameter __D0 PBGetVInfoAsync(__A0)
  1013. #endif
  1014. extern pascal OSErr PBGetVInfoAsync(ParmBlkPtr paramBlock)
  1015.  ONEWORDINLINE(0xA407);
  1016. #define PBGetVol(pb, async) ((async) ? PBGetVolAsync(pb) : PBGetVolSync(pb))
  1017.  
  1018. #if !GENERATINGCFM
  1019. #pragma parameter __D0 PBGetVolSync(__A0)
  1020. #endif
  1021. extern pascal OSErr PBGetVolSync(ParmBlkPtr paramBlock)
  1022.  ONEWORDINLINE(0xA014);
  1023.  
  1024. #if !GENERATINGCFM
  1025. #pragma parameter __D0 PBGetVolAsync(__A0)
  1026. #endif
  1027. extern pascal OSErr PBGetVolAsync(ParmBlkPtr paramBlock)
  1028.  ONEWORDINLINE(0xA414);
  1029. #define PBSetVol(pb, async) ((async) ? PBSetVolAsync(pb) : PBSetVolSync(pb))
  1030.  
  1031. #if !GENERATINGCFM
  1032. #pragma parameter __D0 PBSetVolSync(__A0)
  1033. #endif
  1034. extern pascal OSErr PBSetVolSync(ParmBlkPtr paramBlock)
  1035.  ONEWORDINLINE(0xA015);
  1036.  
  1037. #if !GENERATINGCFM
  1038. #pragma parameter __D0 PBSetVolAsync(__A0)
  1039. #endif
  1040. extern pascal OSErr PBSetVolAsync(ParmBlkPtr paramBlock)
  1041.  ONEWORDINLINE(0xA415);
  1042. #define PBFlushVol(pb, async) ((async) ? PBFlushVolAsync(pb) : PBFlushVolSync(pb))
  1043.  
  1044. #if !GENERATINGCFM
  1045. #pragma parameter __D0 PBFlushVolSync(__A0)
  1046. #endif
  1047. extern pascal OSErr PBFlushVolSync(ParmBlkPtr paramBlock)
  1048.  ONEWORDINLINE(0xA013);
  1049.  
  1050. #if !GENERATINGCFM
  1051. #pragma parameter __D0 PBFlushVolAsync(__A0)
  1052. #endif
  1053. extern pascal OSErr PBFlushVolAsync(ParmBlkPtr paramBlock)
  1054.  ONEWORDINLINE(0xA413);
  1055. #define PBCreate(pb, async) ((async) ? PBCreateAsync(pb) : PBCreateSync(pb))
  1056.  
  1057. #if !GENERATINGCFM
  1058. #pragma parameter __D0 PBCreateSync(__A0)
  1059. #endif
  1060. extern pascal OSErr PBCreateSync(ParmBlkPtr paramBlock)
  1061.  ONEWORDINLINE(0xA008);
  1062.  
  1063. #if !GENERATINGCFM
  1064. #pragma parameter __D0 PBCreateAsync(__A0)
  1065. #endif
  1066. extern pascal OSErr PBCreateAsync(ParmBlkPtr paramBlock)
  1067.  ONEWORDINLINE(0xA408);
  1068. #define PBDelete(pb, async) ((async) ? PBDeleteAsync(pb) : PBDeleteSync(pb))
  1069.  
  1070. #if !GENERATINGCFM
  1071. #pragma parameter __D0 PBDeleteSync(__A0)
  1072. #endif
  1073. extern pascal OSErr PBDeleteSync(ParmBlkPtr paramBlock)
  1074.  ONEWORDINLINE(0xA009);
  1075.  
  1076. #if !GENERATINGCFM
  1077. #pragma parameter __D0 PBDeleteAsync(__A0)
  1078. #endif
  1079. extern pascal OSErr PBDeleteAsync(ParmBlkPtr paramBlock)
  1080.  ONEWORDINLINE(0xA409);
  1081. #define PBOpenDF(pb, async) ((async) ? PBOpenDFAsync(pb) : PBOpenDFSync(pb))
  1082.  
  1083. #if !GENERATINGCFM
  1084. #pragma parameter __D0 PBOpenDFSync(__A0)
  1085. #endif
  1086. extern pascal OSErr PBOpenDFSync(ParmBlkPtr paramBlock)
  1087.  TWOWORDINLINE(0x701A, 0xA060);
  1088.  
  1089. #if !GENERATINGCFM
  1090. #pragma parameter __D0 PBOpenDFAsync(__A0)
  1091. #endif
  1092. extern pascal OSErr PBOpenDFAsync(ParmBlkPtr paramBlock)
  1093.  TWOWORDINLINE(0x701A, 0xA460);
  1094. #define PBOpenRF(pb, async) ((async) ? PBOpenRFAsync(pb) : PBOpenRFSync(pb))
  1095.  
  1096. #if !GENERATINGCFM
  1097. #pragma parameter __D0 PBOpenRFSync(__A0)
  1098. #endif
  1099. extern pascal OSErr PBOpenRFSync(ParmBlkPtr paramBlock)
  1100.  ONEWORDINLINE(0xA00A);
  1101.  
  1102. #if !GENERATINGCFM
  1103. #pragma parameter __D0 PBOpenRFAsync(__A0)
  1104. #endif
  1105. extern pascal OSErr PBOpenRFAsync(ParmBlkPtr paramBlock)
  1106.  ONEWORDINLINE(0xA40A);
  1107. #define PBRename(pb, async) ((async) ? PBRenameAsync(pb) : PBRenameSync(pb))
  1108.  
  1109. #if !GENERATINGCFM
  1110. #pragma parameter __D0 PBRenameSync(__A0)
  1111. #endif
  1112. extern pascal OSErr PBRenameSync(ParmBlkPtr paramBlock)
  1113.  ONEWORDINLINE(0xA00B);
  1114.  
  1115. #if !GENERATINGCFM
  1116. #pragma parameter __D0 PBRenameAsync(__A0)
  1117. #endif
  1118. extern pascal OSErr PBRenameAsync(ParmBlkPtr paramBlock)
  1119.  ONEWORDINLINE(0xA40B);
  1120. #define PBGetFInfo(pb, async) ((async) ? PBGetFInfoAsync(pb) : PBGetFInfoSync(pb))
  1121.  
  1122. #if !GENERATINGCFM
  1123. #pragma parameter __D0 PBGetFInfoSync(__A0)
  1124. #endif
  1125. extern pascal OSErr PBGetFInfoSync(ParmBlkPtr paramBlock)
  1126.  ONEWORDINLINE(0xA00C);
  1127.  
  1128. #if !GENERATINGCFM
  1129. #pragma parameter __D0 PBGetFInfoAsync(__A0)
  1130. #endif
  1131. extern pascal OSErr PBGetFInfoAsync(ParmBlkPtr paramBlock)
  1132.  ONEWORDINLINE(0xA40C);
  1133. #define PBSetFInfo(pb, async) ((async) ? PBSetFInfoAsync(pb) : PBSetFInfoSync(pb))
  1134.  
  1135. #if !GENERATINGCFM
  1136. #pragma parameter __D0 PBSetFInfoSync(__A0)
  1137. #endif
  1138. extern pascal OSErr PBSetFInfoSync(ParmBlkPtr paramBlock)
  1139.  ONEWORDINLINE(0xA00D);
  1140.  
  1141. #if !GENERATINGCFM
  1142. #pragma parameter __D0 PBSetFInfoAsync(__A0)
  1143. #endif
  1144. extern pascal OSErr PBSetFInfoAsync(ParmBlkPtr paramBlock)
  1145.  ONEWORDINLINE(0xA40D);
  1146. #define PBSetFLock(pb, async) ((async) ? PBSetFLockAsync(pb) : PBSetFLockSync(pb))
  1147.  
  1148. #if !GENERATINGCFM
  1149. #pragma parameter __D0 PBSetFLockSync(__A0)
  1150. #endif
  1151. extern pascal OSErr PBSetFLockSync(ParmBlkPtr paramBlock)
  1152.  ONEWORDINLINE(0xA041);
  1153.  
  1154. #if !GENERATINGCFM
  1155. #pragma parameter __D0 PBSetFLockAsync(__A0)
  1156. #endif
  1157. extern pascal OSErr PBSetFLockAsync(ParmBlkPtr paramBlock)
  1158.  ONEWORDINLINE(0xA441);
  1159. #define PBRstFLock(pb, async) ((async) ? PBRstFLockAsync(pb) : PBRstFLockSync(pb))
  1160.  
  1161. #if !GENERATINGCFM
  1162. #pragma parameter __D0 PBRstFLockSync(__A0)
  1163. #endif
  1164. extern pascal OSErr PBRstFLockSync(ParmBlkPtr paramBlock)
  1165.  ONEWORDINLINE(0xA042);
  1166.  
  1167. #if !GENERATINGCFM
  1168. #pragma parameter __D0 PBRstFLockAsync(__A0)
  1169. #endif
  1170. extern pascal OSErr PBRstFLockAsync(ParmBlkPtr paramBlock)
  1171.  ONEWORDINLINE(0xA442);
  1172. #define PBSetFVers(pb, async) ((async) ? PBSetFVersAsync(pb) : PBSetFVersSync(pb))
  1173.  
  1174. #if !GENERATINGCFM
  1175. #pragma parameter __D0 PBSetFVersSync(__A0)
  1176. #endif
  1177. extern pascal OSErr PBSetFVersSync(ParmBlkPtr paramBlock)
  1178.  ONEWORDINLINE(0xA043);
  1179.  
  1180. #if !GENERATINGCFM
  1181. #pragma parameter __D0 PBSetFVersAsync(__A0)
  1182. #endif
  1183. extern pascal OSErr PBSetFVersAsync(ParmBlkPtr paramBlock)
  1184.  ONEWORDINLINE(0xA443);
  1185. #define PBAllocate(pb, async) ((async) ? PBAllocateAsync(pb) : PBAllocateSync(pb))
  1186.  
  1187. #if !GENERATINGCFM
  1188. #pragma parameter __D0 PBAllocateSync(__A0)
  1189. #endif
  1190. extern pascal OSErr PBAllocateSync(ParmBlkPtr paramBlock)
  1191.  ONEWORDINLINE(0xA010);
  1192.  
  1193. #if !GENERATINGCFM
  1194. #pragma parameter __D0 PBAllocateAsync(__A0)
  1195. #endif
  1196. extern pascal OSErr PBAllocateAsync(ParmBlkPtr paramBlock)
  1197.  ONEWORDINLINE(0xA410);
  1198. #define PBGetEOF(pb, async) ((async) ? PBGetEOFAsync(pb) : PBGetEOFSync(pb))
  1199.  
  1200. #if !GENERATINGCFM
  1201. #pragma parameter __D0 PBGetEOFSync(__A0)
  1202. #endif
  1203. extern pascal OSErr PBGetEOFSync(ParmBlkPtr paramBlock)
  1204.  ONEWORDINLINE(0xA011);
  1205.  
  1206. #if !GENERATINGCFM
  1207. #pragma parameter __D0 PBGetEOFAsync(__A0)
  1208. #endif
  1209. extern pascal OSErr PBGetEOFAsync(ParmBlkPtr paramBlock)
  1210.  ONEWORDINLINE(0xA411);
  1211. #define PBSetEOF(pb, async) ((async) ? PBSetEOFAsync(pb) : PBSetEOFSync(pb))
  1212.  
  1213. #if !GENERATINGCFM
  1214. #pragma parameter __D0 PBSetEOFSync(__A0)
  1215. #endif
  1216. extern pascal OSErr PBSetEOFSync(ParmBlkPtr paramBlock)
  1217.  ONEWORDINLINE(0xA012);
  1218.  
  1219. #if !GENERATINGCFM
  1220. #pragma parameter __D0 PBSetEOFAsync(__A0)
  1221. #endif
  1222. extern pascal OSErr PBSetEOFAsync(ParmBlkPtr paramBlock)
  1223.  ONEWORDINLINE(0xA412);
  1224. #define PBGetFPos(pb, async) ((async) ? PBGetFPosAsync(pb) : PBGetFPosSync(pb))
  1225.  
  1226. #if !GENERATINGCFM
  1227. #pragma parameter __D0 PBGetFPosSync(__A0)
  1228. #endif
  1229. extern pascal OSErr PBGetFPosSync(ParmBlkPtr paramBlock)
  1230.  ONEWORDINLINE(0xA018);
  1231.  
  1232. #if !GENERATINGCFM
  1233. #pragma parameter __D0 PBGetFPosAsync(__A0)
  1234. #endif
  1235. extern pascal OSErr PBGetFPosAsync(ParmBlkPtr paramBlock)
  1236.  ONEWORDINLINE(0xA418);
  1237. #define PBSetFPos(pb, async) ((async) ? PBSetFPosAsync(pb) : PBSetFPosSync(pb))
  1238.  
  1239. #if !GENERATINGCFM
  1240. #pragma parameter __D0 PBSetFPosSync(__A0)
  1241. #endif
  1242. extern pascal OSErr PBSetFPosSync(ParmBlkPtr paramBlock)
  1243.  ONEWORDINLINE(0xA044);
  1244.  
  1245. #if !GENERATINGCFM
  1246. #pragma parameter __D0 PBSetFPosAsync(__A0)
  1247. #endif
  1248. extern pascal OSErr PBSetFPosAsync(ParmBlkPtr paramBlock)
  1249.  ONEWORDINLINE(0xA444);
  1250. #define PBFlushFile(pb, async) ((async) ? PBFlushFileAsync(pb) : PBFlushFileSync(pb))
  1251.  
  1252. #if !GENERATINGCFM
  1253. #pragma parameter __D0 PBFlushFileSync(__A0)
  1254. #endif
  1255. extern pascal OSErr PBFlushFileSync(ParmBlkPtr paramBlock)
  1256.  ONEWORDINLINE(0xA045);
  1257.  
  1258. #if !GENERATINGCFM
  1259. #pragma parameter __D0 PBFlushFileAsync(__A0)
  1260. #endif
  1261. extern pascal OSErr PBFlushFileAsync(ParmBlkPtr paramBlock)
  1262.  ONEWORDINLINE(0xA445);
  1263.  
  1264. #if !GENERATINGCFM
  1265. #pragma parameter __D0 PBMountVol(__A0)
  1266. #endif
  1267. extern pascal OSErr PBMountVol(ParmBlkPtr paramBlock)
  1268.  ONEWORDINLINE(0xA00F);
  1269.  
  1270. #if !GENERATINGCFM
  1271. #pragma parameter __D0 PBUnmountVol(__A0)
  1272. #endif
  1273. extern pascal OSErr PBUnmountVol(ParmBlkPtr paramBlock)
  1274.  ONEWORDINLINE(0xA00E);
  1275.  
  1276. #if !GENERATINGCFM
  1277. #pragma parameter __D0 PBEject(__A0)
  1278. #endif
  1279. extern pascal OSErr PBEject(ParmBlkPtr paramBlock)
  1280.  ONEWORDINLINE(0xA017);
  1281.  
  1282. #if !GENERATINGCFM
  1283. #pragma parameter __D0 PBOffLine(__A0)
  1284. #endif
  1285. extern pascal OSErr PBOffLine(ParmBlkPtr paramBlock)
  1286.  ONEWORDINLINE(0xA035);
  1287. #define PBCatSearch(pb, async) ((async) ? PBCatSearchAsync(pb) : PBCatSearchSync(pb))
  1288.  
  1289. #if !GENERATINGCFM
  1290. #pragma parameter __D0 PBCatSearchSync(__A0)
  1291. #endif
  1292. extern pascal OSErr PBCatSearchSync(CSParamPtr paramBlock)
  1293.  TWOWORDINLINE(0x7018, 0xA260);
  1294.  
  1295. #if !GENERATINGCFM
  1296. #pragma parameter __D0 PBCatSearchAsync(__A0)
  1297. #endif
  1298. extern pascal OSErr PBCatSearchAsync(CSParamPtr paramBlock)
  1299.  TWOWORDINLINE(0x7018, 0xA660);
  1300. extern pascal OSErr SetVol(ConstStr63Param volName, short vRefNum);
  1301. extern pascal OSErr UnmountVol(ConstStr63Param volName, short vRefNum);
  1302. extern pascal OSErr Eject(ConstStr63Param volName, short vRefNum);
  1303. extern pascal OSErr FlushVol(ConstStr63Param volName, short vRefNum);
  1304. extern pascal OSErr HSetVol(ConstStr63Param volName, short vRefNum, long dirID);
  1305. extern pascal void AddDrive(short drvrRefNum, short drvNum, DrvQElPtr qEl);
  1306. extern pascal OSErr FSOpen(ConstStr255Param fileName, short vRefNum, short *refNum);
  1307. extern pascal OSErr OpenDF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1308. extern pascal OSErr FSClose(short refNum);
  1309. extern pascal OSErr FSRead(short refNum, long *count, void *buffPtr);
  1310. extern pascal OSErr FSWrite(short refNum, long *count, const void *buffPtr);
  1311. extern pascal OSErr GetVInfo(short drvNum, StringPtr volName, short *vRefNum, long *freeBytes);
  1312. extern pascal OSErr GetFInfo(ConstStr255Param fileName, short vRefNum, FInfo *fndrInfo);
  1313. extern pascal OSErr GetVol(StringPtr volName, short *vRefNum);
  1314. extern pascal OSErr Create(ConstStr255Param fileName, short vRefNum, OSType creator, OSType fileType);
  1315. extern pascal OSErr FSDelete(ConstStr255Param fileName, short vRefNum);
  1316. extern pascal OSErr OpenRF(ConstStr255Param fileName, short vRefNum, short *refNum);
  1317. extern pascal OSErr Rename(ConstStr255Param oldName, short vRefNum, ConstStr255Param newName);
  1318. extern pascal OSErr SetFInfo(ConstStr255Param fileName, short vRefNum, const FInfo *fndrInfo);
  1319. extern pascal OSErr SetFLock(ConstStr255Param fileName, short vRefNum);
  1320. extern pascal OSErr RstFLock(ConstStr255Param fileName, short vRefNum);
  1321. extern pascal OSErr Allocate(short refNum, long *count);
  1322. extern pascal OSErr GetEOF(short refNum, long *logEOF);
  1323. extern pascal OSErr SetEOF(short refNum, long logEOF);
  1324. extern pascal OSErr GetFPos(short refNum, long *filePos);
  1325. extern pascal OSErr SetFPos(short refNum, short posMode, long posOff);
  1326. extern pascal OSErr GetVRefNum(short fileRefNum, short *vRefNum);
  1327. #if CGLUESUPPORTED
  1328. extern OSErr fsopen(const char *fileName, short vRefNum, short *refNum);
  1329. extern OSErr getvinfo(short drvNum, const char *volName, short *vRefNum, long *freeBytes);
  1330. extern OSErr getfinfo(const char *fileName, short vRefNum, FInfo *fndrInfo);
  1331. extern OSErr getvol(const char *volName, short *vRefNum);
  1332. extern OSErr setvol(const char *volName, short vRefNum);
  1333. extern OSErr unmountvol(const char *volName, short vRefNum);
  1334. extern OSErr eject(const char *volName, short vRefNum);
  1335. extern OSErr flushvol(const char *volName, short vRefNum);
  1336. extern OSErr create(const char *fileName, short vRefNum, OSType creator, OSType fileType);
  1337. extern OSErr fsdelete(const char *fileName, short vRefNum);
  1338. extern OSErr openrf(const char *fileName, short vRefNum, short *refNum);
  1339. extern OSErr fsrename(const char *oldName, short vRefNum, const char *newName);
  1340. extern OSErr setfinfo(const char *fileName, short vRefNum, FInfo *fndrInfo);
  1341. extern OSErr setflock(const char *fileName, short vRefNum);
  1342. extern OSErr rstflock(const char *fileName, short vRefNum);
  1343. #endif
  1344. #define PBOpenWD(pb, async) ((async) ? PBOpenWDAsync(pb) : PBOpenWDSync(pb))
  1345.  
  1346. #if !GENERATINGCFM
  1347. #pragma parameter __D0 PBOpenWDSync(__A0)
  1348. #endif
  1349. extern pascal OSErr PBOpenWDSync(WDPBPtr paramBlock)
  1350.  TWOWORDINLINE(0x7001, 0xA260);
  1351.  
  1352. #if !GENERATINGCFM
  1353. #pragma parameter __D0 PBOpenWDAsync(__A0)
  1354. #endif
  1355. extern pascal OSErr PBOpenWDAsync(WDPBPtr paramBlock)
  1356.  TWOWORDINLINE(0x7001, 0xA660);
  1357. #define PBCloseWD(pb, async) ((async) ? PBCloseWDAsync(pb) : PBCloseWDSync(pb))
  1358.  
  1359. #if !GENERATINGCFM
  1360. #pragma parameter __D0 PBCloseWDSync(__A0)
  1361. #endif
  1362. extern pascal OSErr PBCloseWDSync(WDPBPtr paramBlock)
  1363.  TWOWORDINLINE(0x7002, 0xA260);
  1364.  
  1365. #if !GENERATINGCFM
  1366. #pragma parameter __D0 PBCloseWDAsync(__A0)
  1367. #endif
  1368. extern pascal OSErr PBCloseWDAsync(WDPBPtr paramBlock)
  1369.  TWOWORDINLINE(0x7002, 0xA660);
  1370. #define PBHSetVol(pb, async) ((async) ? PBHSetVolAsync(pb) : PBHSetVolSync(pb))
  1371.  
  1372. #if !GENERATINGCFM
  1373. #pragma parameter __D0 PBHSetVolSync(__A0)
  1374. #endif
  1375. extern pascal OSErr PBHSetVolSync(WDPBPtr paramBlock)
  1376.  ONEWORDINLINE(0xA215);
  1377.  
  1378. #if !GENERATINGCFM
  1379. #pragma parameter __D0 PBHSetVolAsync(__A0)
  1380. #endif
  1381. extern pascal OSErr PBHSetVolAsync(WDPBPtr paramBlock)
  1382.  ONEWORDINLINE(0xA615);
  1383. #define PBHGetVol(pb, async) ((async) ? PBHGetVolAsync(pb) : PBHGetVolSync(pb))
  1384.  
  1385. #if !GENERATINGCFM
  1386. #pragma parameter __D0 PBHGetVolSync(__A0)
  1387. #endif
  1388. extern pascal OSErr PBHGetVolSync(WDPBPtr paramBlock)
  1389.  ONEWORDINLINE(0xA214);
  1390.  
  1391. #if !GENERATINGCFM
  1392. #pragma parameter __D0 PBHGetVolAsync(__A0)
  1393. #endif
  1394. extern pascal OSErr PBHGetVolAsync(WDPBPtr paramBlock)
  1395.  ONEWORDINLINE(0xA614);
  1396. #define PBCatMove(pb, async) ((async) ? PBCatMoveAsync(pb) : PBCatMoveSync(pb))
  1397.  
  1398. #if !GENERATINGCFM
  1399. #pragma parameter __D0 PBCatMoveSync(__A0)
  1400. #endif
  1401. extern pascal OSErr PBCatMoveSync(CMovePBPtr paramBlock)
  1402.  TWOWORDINLINE(0x7005, 0xA260);
  1403.  
  1404. #if !GENERATINGCFM
  1405. #pragma parameter __D0 PBCatMoveAsync(__A0)
  1406. #endif
  1407. extern pascal OSErr PBCatMoveAsync(CMovePBPtr paramBlock)
  1408.  TWOWORDINLINE(0x7005, 0xA660);
  1409. #define PBDirCreate(pb, async) ((async) ? PBDirCreateAsync(pb) : PBDirCreateSync(pb))
  1410.  
  1411. #if !GENERATINGCFM
  1412. #pragma parameter __D0 PBDirCreateSync(__A0)
  1413. #endif
  1414. extern pascal OSErr PBDirCreateSync(HParmBlkPtr paramBlock)
  1415.  TWOWORDINLINE(0x7006, 0xA260);
  1416.  
  1417. #if !GENERATINGCFM
  1418. #pragma parameter __D0 PBDirCreateAsync(__A0)
  1419. #endif
  1420. extern pascal OSErr PBDirCreateAsync(HParmBlkPtr paramBlock)
  1421.  TWOWORDINLINE(0x7006, 0xA660);
  1422. #define PBGetWDInfo(pb, async) ((async) ? PBGetWDInfoAsync(pb) : PBGetWDInfoSync(pb))
  1423.  
  1424. #if !GENERATINGCFM
  1425. #pragma parameter __D0 PBGetWDInfoSync(__A0)
  1426. #endif
  1427. extern pascal OSErr PBGetWDInfoSync(WDPBPtr paramBlock)
  1428.  TWOWORDINLINE(0x7007, 0xA260);
  1429.  
  1430. #if !GENERATINGCFM
  1431. #pragma parameter __D0 PBGetWDInfoAsync(__A0)
  1432. #endif
  1433. extern pascal OSErr PBGetWDInfoAsync(WDPBPtr paramBlock)
  1434.  TWOWORDINLINE(0x7007, 0xA660);
  1435. #define PBGetFCBInfo(pb, async) ((async) ? PBGetFCBInfoAsync(pb) : PBGetFCBInfoSync(pb))
  1436.  
  1437. #if !GENERATINGCFM
  1438. #pragma parameter __D0 PBGetFCBInfoSync(__A0)
  1439. #endif
  1440. extern pascal OSErr PBGetFCBInfoSync(FCBPBPtr paramBlock)
  1441.  TWOWORDINLINE(0x7008, 0xA260);
  1442.  
  1443. #if !GENERATINGCFM
  1444. #pragma parameter __D0 PBGetFCBInfoAsync(__A0)
  1445. #endif
  1446. extern pascal OSErr PBGetFCBInfoAsync(FCBPBPtr paramBlock)
  1447.  TWOWORDINLINE(0x7008, 0xA660);
  1448. #define PBGetCatInfo(pb, async) ((async) ? PBGetCatInfoAsync(pb) : PBGetCatInfoSync(pb))
  1449.  
  1450. #if !GENERATINGCFM
  1451. #pragma parameter __D0 PBGetCatInfoSync(__A0)
  1452. #endif
  1453. extern pascal OSErr PBGetCatInfoSync(CInfoPBPtr paramBlock)
  1454.  TWOWORDINLINE(0x7009, 0xA260);
  1455.  
  1456. #if !GENERATINGCFM
  1457. #pragma parameter __D0 PBGetCatInfoAsync(__A0)
  1458. #endif
  1459. extern pascal OSErr PBGetCatInfoAsync(CInfoPBPtr paramBlock)
  1460.  TWOWORDINLINE(0x7009, 0xA660);
  1461. #define PBSetCatInfo(pb, async) ((async) ? PBSetCatInfoAsync(pb) : PBSetCatInfoSync(pb))
  1462.  
  1463. #if !GENERATINGCFM
  1464. #pragma parameter __D0 PBSetCatInfoSync(__A0)
  1465. #endif
  1466. extern pascal OSErr PBSetCatInfoSync(CInfoPBPtr paramBlock)
  1467.  TWOWORDINLINE(0x700A, 0xA260);
  1468.  
  1469. #if !GENERATINGCFM
  1470. #pragma parameter __D0 PBSetCatInfoAsync(__A0)
  1471. #endif
  1472. extern pascal OSErr PBSetCatInfoAsync(CInfoPBPtr paramBlock)
  1473.  TWOWORDINLINE(0x700A, 0xA660);
  1474. #define PBAllocContig(pb, async) ((async) ? PBAllocContigAsync(pb) : PBAllocContigSync(pb))
  1475.  
  1476. #if !GENERATINGCFM
  1477. #pragma parameter __D0 PBAllocContigSync(__A0)
  1478. #endif
  1479. extern pascal OSErr PBAllocContigSync(ParmBlkPtr paramBlock)
  1480.  ONEWORDINLINE(0xA210);
  1481.  
  1482. #if !GENERATINGCFM
  1483. #pragma parameter __D0 PBAllocContigAsync(__A0)
  1484. #endif
  1485. extern pascal OSErr PBAllocContigAsync(ParmBlkPtr paramBlock)
  1486.  ONEWORDINLINE(0xA610);
  1487. #define PBLockRange(pb, async) ((async) ? PBLockRangeAsync(pb) : PBLockRangeSync(pb))
  1488.  
  1489. #if !GENERATINGCFM
  1490. #pragma parameter __D0 PBLockRangeSync(__A0)
  1491. #endif
  1492. extern pascal OSErr PBLockRangeSync(ParmBlkPtr paramBlock)
  1493.  TWOWORDINLINE(0x7010, 0xA260);
  1494.  
  1495. #if !GENERATINGCFM
  1496. #pragma parameter __D0 PBLockRangeAsync(__A0)
  1497. #endif
  1498. extern pascal OSErr PBLockRangeAsync(ParmBlkPtr paramBlock)
  1499.  TWOWORDINLINE(0x7010, 0xA660);
  1500. #define PBUnlockRange(pb, async) ((async) ? PBUnlockRangeAsync(pb) : PBUnlockRangeSync(pb))
  1501.  
  1502. #if !GENERATINGCFM
  1503. #pragma parameter __D0 PBUnlockRangeSync(__A0)
  1504. #endif
  1505. extern pascal OSErr PBUnlockRangeSync(ParmBlkPtr paramBlock)
  1506.  TWOWORDINLINE(0x7011, 0xA260);
  1507.  
  1508. #if !GENERATINGCFM
  1509. #pragma parameter __D0 PBUnlockRangeAsync(__A0)
  1510. #endif
  1511. extern pascal OSErr PBUnlockRangeAsync(ParmBlkPtr paramBlock)
  1512.  TWOWORDINLINE(0x7011, 0xA660);
  1513. #define PBSetVInfo(pb, async) ((async) ? PBSetVInfoAsync(pb) : PBSetVInfoSync(pb))
  1514.  
  1515. #if !GENERATINGCFM
  1516. #pragma parameter __D0 PBSetVInfoSync(__A0)
  1517. #endif
  1518. extern pascal OSErr PBSetVInfoSync(HParmBlkPtr paramBlock)
  1519.  TWOWORDINLINE(0x700B, 0xA260);
  1520.  
  1521. #if !GENERATINGCFM
  1522. #pragma parameter __D0 PBSetVInfoAsync(__A0)
  1523. #endif
  1524. extern pascal OSErr PBSetVInfoAsync(HParmBlkPtr paramBlock)
  1525.  TWOWORDINLINE(0x700B, 0xA660);
  1526. #define PBHGetVInfo(pb, async) ((async) ? PBHGetVInfoAsync(pb) : PBHGetVInfoSync(pb))
  1527.  
  1528. #if !GENERATINGCFM
  1529. #pragma parameter __D0 PBHGetVInfoSync(__A0)
  1530. #endif
  1531. extern pascal OSErr PBHGetVInfoSync(HParmBlkPtr paramBlock)
  1532.  ONEWORDINLINE(0xA207);
  1533.  
  1534. #if !GENERATINGCFM
  1535. #pragma parameter __D0 PBHGetVInfoAsync(__A0)
  1536. #endif
  1537. extern pascal OSErr PBHGetVInfoAsync(HParmBlkPtr paramBlock)
  1538.  ONEWORDINLINE(0xA607);
  1539. #define PBHOpen(pb, async) ((async) ? PBHOpenAsync(pb) : PBHOpenSync(pb))
  1540.  
  1541. #if !GENERATINGCFM
  1542. #pragma parameter __D0 PBHOpenSync(__A0)
  1543. #endif
  1544. extern pascal OSErr PBHOpenSync(HParmBlkPtr paramBlock)
  1545.  ONEWORDINLINE(0xA200);
  1546.  
  1547. #if !GENERATINGCFM
  1548. #pragma parameter __D0 PBHOpenAsync(__A0)
  1549. #endif
  1550. extern pascal OSErr PBHOpenAsync(HParmBlkPtr paramBlock)
  1551.  ONEWORDINLINE(0xA600);
  1552. #define PBHOpenRF(pb, async) ((async) ? PBHOpenRFAsync(pb) : PBHOpenRFSync(pb))
  1553.  
  1554. #if !GENERATINGCFM
  1555. #pragma parameter __D0 PBHOpenRFSync(__A0)
  1556. #endif
  1557. extern pascal OSErr PBHOpenRFSync(HParmBlkPtr paramBlock)
  1558.  ONEWORDINLINE(0xA20A);
  1559.  
  1560. #if !GENERATINGCFM
  1561. #pragma parameter __D0 PBHOpenRFAsync(__A0)
  1562. #endif
  1563. extern pascal OSErr PBHOpenRFAsync(HParmBlkPtr paramBlock)
  1564.  ONEWORDINLINE(0xA60A);
  1565. #define PBHOpenDF(pb, async) ((async) ? PBHOpenDFAsync(pb) : PBHOpenDFSync(pb))
  1566.  
  1567. #if !GENERATINGCFM
  1568. #pragma parameter __D0 PBHOpenDFSync(__A0)
  1569. #endif
  1570. extern pascal OSErr PBHOpenDFSync(HParmBlkPtr paramBlock)
  1571.  TWOWORDINLINE(0x701A, 0xA260);
  1572.  
  1573. #if !GENERATINGCFM
  1574. #pragma parameter __D0 PBHOpenDFAsync(__A0)
  1575. #endif
  1576. extern pascal OSErr PBHOpenDFAsync(HParmBlkPtr paramBlock)
  1577.  TWOWORDINLINE(0x701A, 0xA660);
  1578. #define PBHCreate(pb, async) ((async) ? PBHCreateAsync(pb) : PBHCreateSync(pb))
  1579.  
  1580. #if !GENERATINGCFM
  1581. #pragma parameter __D0 PBHCreateSync(__A0)
  1582. #endif
  1583. extern pascal OSErr PBHCreateSync(HParmBlkPtr paramBlock)
  1584.  ONEWORDINLINE(0xA208);
  1585.  
  1586. #if !GENERATINGCFM
  1587. #pragma parameter __D0 PBHCreateAsync(__A0)
  1588. #endif
  1589. extern pascal OSErr PBHCreateAsync(HParmBlkPtr paramBlock)
  1590.  ONEWORDINLINE(0xA608);
  1591. #define PBHDelete(pb, async) ((async) ? PBHDeleteAsync(pb) : PBHDeleteSync(pb))
  1592.  
  1593. #if !GENERATINGCFM
  1594. #pragma parameter __D0 PBHDeleteSync(__A0)
  1595. #endif
  1596. extern pascal OSErr PBHDeleteSync(HParmBlkPtr paramBlock)
  1597.  ONEWORDINLINE(0xA209);
  1598.  
  1599. #if !GENERATINGCFM
  1600. #pragma parameter __D0 PBHDeleteAsync(__A0)
  1601. #endif
  1602. extern pascal OSErr PBHDeleteAsync(HParmBlkPtr paramBlock)
  1603.  ONEWORDINLINE(0xA609);
  1604. #define PBHRename(pb, async) ((async) ? PBHRenameAsync(pb) : PBHRenameSync(pb))
  1605.  
  1606. #if !GENERATINGCFM
  1607. #pragma parameter __D0 PBHRenameSync(__A0)
  1608. #endif
  1609. extern pascal OSErr PBHRenameSync(HParmBlkPtr paramBlock)
  1610.  ONEWORDINLINE(0xA20B);
  1611.  
  1612. #if !GENERATINGCFM
  1613. #pragma parameter __D0 PBHRenameAsync(__A0)
  1614. #endif
  1615. extern pascal OSErr PBHRenameAsync(HParmBlkPtr paramBlock)
  1616.  ONEWORDINLINE(0xA60B);
  1617. #define PBHRstFLock(pb, async) ((async) ? PBHRstFLockAsync(pb) : PBHRstFLockSync(pb))
  1618.  
  1619. #if !GENERATINGCFM
  1620. #pragma parameter __D0 PBHRstFLockSync(__A0)
  1621. #endif
  1622. extern pascal OSErr PBHRstFLockSync(HParmBlkPtr paramBlock)
  1623.  ONEWORDINLINE(0xA242);
  1624.  
  1625. #if !GENERATINGCFM
  1626. #pragma parameter __D0 PBHRstFLockAsync(__A0)
  1627. #endif
  1628. extern pascal OSErr PBHRstFLockAsync(HParmBlkPtr paramBlock)
  1629.  ONEWORDINLINE(0xA642);
  1630. #define PBHSetFLock(pb, async) ((async) ? PBHSetFLockAsync(pb) : PBHSetFLockSync(pb))
  1631.  
  1632. #if !GENERATINGCFM
  1633. #pragma parameter __D0 PBHSetFLockSync(__A0)
  1634. #endif
  1635. extern pascal OSErr PBHSetFLockSync(HParmBlkPtr paramBlock)
  1636.  ONEWORDINLINE(0xA241);
  1637.  
  1638. #if !GENERATINGCFM
  1639. #pragma parameter __D0 PBHSetFLockAsync(__A0)
  1640. #endif
  1641. extern pascal OSErr PBHSetFLockAsync(HParmBlkPtr paramBlock)
  1642.  ONEWORDINLINE(0xA641);
  1643. #define PBHGetFInfo(pb, async) ((async) ? PBHGetFInfoAsync(pb) : PBHGetFInfoSync(pb))
  1644.  
  1645. #if !GENERATINGCFM
  1646. #pragma parameter __D0 PBHGetFInfoSync(__A0)
  1647. #endif
  1648. extern pascal OSErr PBHGetFInfoSync(HParmBlkPtr paramBlock)
  1649.  ONEWORDINLINE(0xA20C);
  1650.  
  1651. #if !GENERATINGCFM
  1652. #pragma parameter __D0 PBHGetFInfoAsync(__A0)
  1653. #endif
  1654. extern pascal OSErr PBHGetFInfoAsync(HParmBlkPtr paramBlock)
  1655.  ONEWORDINLINE(0xA60C);
  1656. #define PBHSetFInfo(pb, async) ((async) ? PBHSetFInfoAsync(pb) : PBHSetFInfoSync(pb))
  1657.  
  1658. #if !GENERATINGCFM
  1659. #pragma parameter __D0 PBHSetFInfoSync(__A0)
  1660. #endif
  1661. extern pascal OSErr PBHSetFInfoSync(HParmBlkPtr paramBlock)
  1662.  ONEWORDINLINE(0xA20D);
  1663.  
  1664. #if !GENERATINGCFM
  1665. #pragma parameter __D0 PBHSetFInfoAsync(__A0)
  1666. #endif
  1667. extern pascal OSErr PBHSetFInfoAsync(HParmBlkPtr paramBlock)
  1668.  ONEWORDINLINE(0xA60D);
  1669. #define PBMakeFSSpec(pb, async) ((async) ? PBMakeFSSpecAsync(pb) : PBMakeFSSpecSync(pb))
  1670.  
  1671. #if !GENERATINGCFM
  1672. #pragma parameter __D0 PBMakeFSSpecSync(__A0)
  1673. #endif
  1674. extern pascal OSErr PBMakeFSSpecSync(HParmBlkPtr paramBlock)
  1675.  TWOWORDINLINE(0x701B, 0xA260);
  1676.  
  1677. #if !GENERATINGCFM
  1678. #pragma parameter __D0 PBMakeFSSpecAsync(__A0)
  1679. #endif
  1680. extern pascal OSErr PBMakeFSSpecAsync(HParmBlkPtr paramBlock)
  1681.  TWOWORDINLINE(0x701B, 0xA660);
  1682. extern pascal void FInitQueue(void)
  1683.  ONEWORDINLINE(0xA016);
  1684. extern pascal QHdrPtr GetFSQHdr(void)
  1685.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0360);
  1686. extern pascal QHdrPtr GetDrvQHdr(void)
  1687.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0308);
  1688. extern pascal QHdrPtr GetVCBQHdr(void)
  1689.  THREEWORDINLINE(0x2EBC, 0x0000, 0x0356);
  1690. extern pascal OSErr HGetVol(StringPtr volName, short *vRefNum, long *dirID);
  1691. extern pascal OSErr HOpen(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1692. extern pascal OSErr HOpenDF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1693. extern pascal OSErr HOpenRF(short vRefNum, long dirID, ConstStr255Param fileName, SInt8 permission, short *refNum);
  1694. extern pascal OSErr AllocContig(short refNum, long *count);
  1695. extern pascal OSErr HCreate(short vRefNum, long dirID, ConstStr255Param fileName, OSType creator, OSType fileType);
  1696. extern pascal OSErr DirCreate(short vRefNum, long parentDirID, ConstStr255Param directoryName, long *createdDirID);
  1697. extern pascal OSErr HDelete(short vRefNum, long dirID, ConstStr255Param fileName);
  1698. extern pascal OSErr HGetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, FInfo *fndrInfo);
  1699. extern pascal OSErr HSetFInfo(short vRefNum, long dirID, ConstStr255Param fileName, const FInfo *fndrInfo);
  1700. extern pascal OSErr HSetFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1701. extern pascal OSErr HRstFLock(short vRefNum, long dirID, ConstStr255Param fileName);
  1702. extern pascal OSErr HRename(short vRefNum, long dirID, ConstStr255Param oldName, ConstStr255Param newName);
  1703. extern pascal OSErr CatMove(short vRefNum, long dirID, ConstStr255Param oldName, long newDirID, ConstStr255Param newName);
  1704. extern pascal OSErr OpenWD(short vRefNum, long dirID, long procID, short *wdRefNum);
  1705. extern pascal OSErr CloseWD(short wdRefNum);
  1706. extern pascal OSErr GetWDInfo(short wdRefNum, short *vRefNum, long *dirID, long *procID);
  1707. /*  shared environment  */
  1708. #define PBHGetVolParms(pb, async) ((async) ? PBHGetVolParmsAsync(pb) : PBHGetVolParmsSync(pb))
  1709.  
  1710. #if !GENERATINGCFM
  1711. #pragma parameter __D0 PBHGetVolParmsSync(__A0)
  1712. #endif
  1713. extern pascal OSErr PBHGetVolParmsSync(HParmBlkPtr paramBlock)
  1714.  TWOWORDINLINE(0x7030, 0xA260);
  1715.  
  1716. #if !GENERATINGCFM
  1717. #pragma parameter __D0 PBHGetVolParmsAsync(__A0)
  1718. #endif
  1719. extern pascal OSErr PBHGetVolParmsAsync(HParmBlkPtr paramBlock)
  1720.  TWOWORDINLINE(0x7030, 0xA660);
  1721. #define PBHGetLogInInfo(pb, async) ((async) ? PBHGetLogInInfoAsync(pb) : PBHGetLogInInfoSync(pb))
  1722.  
  1723. #if !GENERATINGCFM
  1724. #pragma parameter __D0 PBHGetLogInInfoSync(__A0)
  1725. #endif
  1726. extern pascal OSErr PBHGetLogInInfoSync(HParmBlkPtr paramBlock)
  1727.  TWOWORDINLINE(0x7031, 0xA260);
  1728.  
  1729. #if !GENERATINGCFM
  1730. #pragma parameter __D0 PBHGetLogInInfoAsync(__A0)
  1731. #endif
  1732. extern pascal OSErr PBHGetLogInInfoAsync(HParmBlkPtr paramBlock)
  1733.  TWOWORDINLINE(0x7031, 0xA660);
  1734. #define PBHGetDirAccess(pb, async) ((async) ? PBHGetDirAccessAsync(pb) : PBHGetDirAccessSync(pb))
  1735.  
  1736. #if !GENERATINGCFM
  1737. #pragma parameter __D0 PBHGetDirAccessSync(__A0)
  1738. #endif
  1739. extern pascal OSErr PBHGetDirAccessSync(HParmBlkPtr paramBlock)
  1740.  TWOWORDINLINE(0x7032, 0xA260);
  1741.  
  1742. #if !GENERATINGCFM
  1743. #pragma parameter __D0 PBHGetDirAccessAsync(__A0)
  1744. #endif
  1745. extern pascal OSErr PBHGetDirAccessAsync(HParmBlkPtr paramBlock)
  1746.  TWOWORDINLINE(0x7032, 0xA660);
  1747. #define PBHSetDirAccess(pb, async) ((async) ? PBHSetDirAccessAsync(pb) : PBHSetDirAccessSync(pb))
  1748.  
  1749. #if !GENERATINGCFM
  1750. #pragma parameter __D0 PBHSetDirAccessSync(__A0)
  1751. #endif
  1752. extern pascal OSErr PBHSetDirAccessSync(HParmBlkPtr paramBlock)
  1753.  TWOWORDINLINE(0x7033, 0xA260);
  1754.  
  1755. #if !GENERATINGCFM
  1756. #pragma parameter __D0 PBHSetDirAccessAsync(__A0)
  1757. #endif
  1758. extern pascal OSErr PBHSetDirAccessAsync(HParmBlkPtr paramBlock)
  1759.  TWOWORDINLINE(0x7033, 0xA660);
  1760. #define PBHMapID(pb, async) ((async) ? PBHMapIDAsync(pb) : PBHMapIDSync(pb))
  1761.  
  1762. #if !GENERATINGCFM
  1763. #pragma parameter __D0 PBHMapIDSync(__A0)
  1764. #endif
  1765. extern pascal OSErr PBHMapIDSync(HParmBlkPtr paramBlock)
  1766.  TWOWORDINLINE(0x7034, 0xA260);
  1767.  
  1768. #if !GENERATINGCFM
  1769. #pragma parameter __D0 PBHMapIDAsync(__A0)
  1770. #endif
  1771. extern pascal OSErr PBHMapIDAsync(HParmBlkPtr paramBlock)
  1772.  TWOWORDINLINE(0x7034, 0xA660);
  1773. #define PBHMapName(pb, async) ((async) ? PBHMapNameAsync(pb) : PBHMapNameSync(pb))
  1774.  
  1775. #if !GENERATINGCFM
  1776. #pragma parameter __D0 PBHMapNameSync(__A0)
  1777. #endif
  1778. extern pascal OSErr PBHMapNameSync(HParmBlkPtr paramBlock)
  1779.  TWOWORDINLINE(0x7035, 0xA260);
  1780.  
  1781. #if !GENERATINGCFM
  1782. #pragma parameter __D0 PBHMapNameAsync(__A0)
  1783. #endif
  1784. extern pascal OSErr PBHMapNameAsync(HParmBlkPtr paramBlock)
  1785.  TWOWORDINLINE(0x7035, 0xA660);
  1786. #define PBHCopyFile(pb, async) ((async) ? PBHCopyFileAsync(pb) : PBHCopyFileSync(pb))
  1787.  
  1788. #if !GENERATINGCFM
  1789. #pragma parameter __D0 PBHCopyFileSync(__A0)
  1790. #endif
  1791. extern pascal OSErr PBHCopyFileSync(HParmBlkPtr paramBlock)
  1792.  TWOWORDINLINE(0x7036, 0xA260);
  1793.  
  1794. #if !GENERATINGCFM
  1795. #pragma parameter __D0 PBHCopyFileAsync(__A0)
  1796. #endif
  1797. extern pascal OSErr PBHCopyFileAsync(HParmBlkPtr paramBlock)
  1798.  TWOWORDINLINE(0x7036, 0xA660);
  1799. #define PBHMoveRename(pb, async) ((async) ? PBHMoveRenameAsync(pb) : PBHMoveRenameSync(pb))
  1800.  
  1801. #if !GENERATINGCFM
  1802. #pragma parameter __D0 PBHMoveRenameSync(__A0)
  1803. #endif
  1804. extern pascal OSErr PBHMoveRenameSync(HParmBlkPtr paramBlock)
  1805.  TWOWORDINLINE(0x7037, 0xA260);
  1806.  
  1807. #if !GENERATINGCFM
  1808. #pragma parameter __D0 PBHMoveRenameAsync(__A0)
  1809. #endif
  1810. extern pascal OSErr PBHMoveRenameAsync(HParmBlkPtr paramBlock)
  1811.  TWOWORDINLINE(0x7037, 0xA660);
  1812. #define PBHOpenDeny(pb, async) ((async) ? PBHOpenDenyAsync(pb) : PBHOpenDenySync(pb))
  1813.  
  1814. #if !GENERATINGCFM
  1815. #pragma parameter __D0 PBHOpenDenySync(__A0)
  1816. #endif
  1817. extern pascal OSErr PBHOpenDenySync(HParmBlkPtr paramBlock)
  1818.  TWOWORDINLINE(0x7038, 0xA260);
  1819.  
  1820. #if !GENERATINGCFM
  1821. #pragma parameter __D0 PBHOpenDenyAsync(__A0)
  1822. #endif
  1823. extern pascal OSErr PBHOpenDenyAsync(HParmBlkPtr paramBlock)
  1824.  TWOWORDINLINE(0x7038, 0xA660);
  1825. #define PBHOpenRFDeny(pb, async) ((async) ? PBHOpenRFDenyAsync(pb) : PBHOpenRFDenySync(pb))
  1826.  
  1827. #if !GENERATINGCFM
  1828. #pragma parameter __D0 PBHOpenRFDenySync(__A0)
  1829. #endif
  1830. extern pascal OSErr PBHOpenRFDenySync(HParmBlkPtr paramBlock)
  1831.  TWOWORDINLINE(0x7039, 0xA260);
  1832.  
  1833. #if !GENERATINGCFM
  1834. #pragma parameter __D0 PBHOpenRFDenyAsync(__A0)
  1835. #endif
  1836. extern pascal OSErr PBHOpenRFDenyAsync(HParmBlkPtr paramBlock)
  1837.  TWOWORDINLINE(0x7039, 0xA660);
  1838. #define PBExchangeFiles(pb, async) ((async) ? PBExchangeFilesAsync(pb) : PBExchangeFilesSync(pb))
  1839.  
  1840. #if !GENERATINGCFM
  1841. #pragma parameter __D0 PBExchangeFilesSync(__A0)
  1842. #endif
  1843. extern pascal OSErr PBExchangeFilesSync(HParmBlkPtr paramBlock)
  1844.  TWOWORDINLINE(0x7017, 0xA260);
  1845.  
  1846. #if !GENERATINGCFM
  1847. #pragma parameter __D0 PBExchangeFilesAsync(__A0)
  1848. #endif
  1849. extern pascal OSErr PBExchangeFilesAsync(HParmBlkPtr paramBlock)
  1850.  TWOWORDINLINE(0x7017, 0xA660);
  1851. #define PBCreateFileIDRef(pb, async) ((async) ? PBCreateFileIDRefAsync(pb) : PBCreateFileIDRefSync(pb))
  1852.  
  1853. #if !GENERATINGCFM
  1854. #pragma parameter __D0 PBCreateFileIDRefSync(__A0)
  1855. #endif
  1856. extern pascal OSErr PBCreateFileIDRefSync(HParmBlkPtr paramBlock)
  1857.  TWOWORDINLINE(0x7014, 0xA260);
  1858.  
  1859. #if !GENERATINGCFM
  1860. #pragma parameter __D0 PBCreateFileIDRefAsync(__A0)
  1861. #endif
  1862. extern pascal OSErr PBCreateFileIDRefAsync(HParmBlkPtr paramBlock)
  1863.  TWOWORDINLINE(0x7014, 0xA660);
  1864. #define PBResolveFileIDRef(pb, async) ((async) ? PBResolveFileIDRefAsync(pb) : PBResolveFileIDRefSync(pb))
  1865.  
  1866. #if !GENERATINGCFM
  1867. #pragma parameter __D0 PBResolveFileIDRefSync(__A0)
  1868. #endif
  1869. extern pascal OSErr PBResolveFileIDRefSync(HParmBlkPtr paramBlock)
  1870.  TWOWORDINLINE(0x7016, 0xA260);
  1871.  
  1872. #if !GENERATINGCFM
  1873. #pragma parameter __D0 PBResolveFileIDRefAsync(__A0)
  1874. #endif
  1875. extern pascal OSErr PBResolveFileIDRefAsync(HParmBlkPtr paramBlock)
  1876.  TWOWORDINLINE(0x7016, 0xA660);
  1877. #define PBDeleteFileIDRef(pb, async) ((async) ? PBDeleteFileIDRefAsync(pb) : PBDeleteFileIDRefSync(pb))
  1878.  
  1879. #if !GENERATINGCFM
  1880. #pragma parameter __D0 PBDeleteFileIDRefSync(__A0)
  1881. #endif
  1882. extern pascal OSErr PBDeleteFileIDRefSync(HParmBlkPtr paramBlock)
  1883.  TWOWORDINLINE(0x7015, 0xA260);
  1884.  
  1885. #if !GENERATINGCFM
  1886. #pragma parameter __D0 PBDeleteFileIDRefAsync(__A0)
  1887. #endif
  1888. extern pascal OSErr PBDeleteFileIDRefAsync(HParmBlkPtr paramBlock)
  1889.  TWOWORDINLINE(0x7015, 0xA660);
  1890. #define PBGetForeignPrivs(pb, async) ((async) ? PBGetForeignPrivsAsync(pb) : PBGetForeignPrivsSync(pb))
  1891.  
  1892. #if !GENERATINGCFM
  1893. #pragma parameter __D0 PBGetForeignPrivsSync(__A0)
  1894. #endif
  1895. extern pascal OSErr PBGetForeignPrivsSync(HParmBlkPtr paramBlock)
  1896.  TWOWORDINLINE(0x7060, 0xA260);
  1897.  
  1898. #if !GENERATINGCFM
  1899. #pragma parameter __D0 PBGetForeignPrivsAsync(__A0)
  1900. #endif
  1901. extern pascal OSErr PBGetForeignPrivsAsync(HParmBlkPtr paramBlock)
  1902.  TWOWORDINLINE(0x7060, 0xA660);
  1903. #define PBSetForeignPrivs(pb, async) ((async) ? PBSetForeignPrivsAsync(pb) : PBSetForeignPrivsSync(pb))
  1904.  
  1905. #if !GENERATINGCFM
  1906. #pragma parameter __D0 PBSetForeignPrivsSync(__A0)
  1907. #endif
  1908. extern pascal OSErr PBSetForeignPrivsSync(HParmBlkPtr paramBlock)
  1909.  TWOWORDINLINE(0x7061, 0xA260);
  1910.  
  1911. #if !GENERATINGCFM
  1912. #pragma parameter __D0 PBSetForeignPrivsAsync(__A0)
  1913. #endif
  1914. extern pascal OSErr PBSetForeignPrivsAsync(HParmBlkPtr paramBlock)
  1915.  TWOWORDINLINE(0x7061, 0xA660);
  1916. /*  Desktop Manager  */
  1917.  
  1918. #if !GENERATINGCFM
  1919. #pragma parameter __D0 PBDTGetPath(__A0)
  1920. #endif
  1921. extern pascal OSErr PBDTGetPath(DTPBPtr paramBlock)
  1922.  TWOWORDINLINE(0x7020, 0xA260);
  1923.  
  1924. #if !GENERATINGCFM
  1925. #pragma parameter __D0 PBDTCloseDown(__A0)
  1926. #endif
  1927. extern pascal OSErr PBDTCloseDown(DTPBPtr paramBlock)
  1928.  TWOWORDINLINE(0x7021, 0xA260);
  1929. #define PBDTAddIcon(pb, async) ((async) ? PBDTAddIconAsync(pb) : PBDTAddIconSync(pb))
  1930.  
  1931. #if !GENERATINGCFM
  1932. #pragma parameter __D0 PBDTAddIconSync(__A0)
  1933. #endif
  1934. extern pascal OSErr PBDTAddIconSync(DTPBPtr paramBlock)
  1935.  TWOWORDINLINE(0x7022, 0xA260);
  1936.  
  1937. #if !GENERATINGCFM
  1938. #pragma parameter __D0 PBDTAddIconAsync(__A0)
  1939. #endif
  1940. extern pascal OSErr PBDTAddIconAsync(DTPBPtr paramBlock)
  1941.  TWOWORDINLINE(0x7022, 0xA660);
  1942. #define PBDTGetIcon(pb, async) ((async) ? PBDTGetIconAsync(pb) : PBDTGetIconSync(pb))
  1943.  
  1944. #if !GENERATINGCFM
  1945. #pragma parameter __D0 PBDTGetIconSync(__A0)
  1946. #endif
  1947. extern pascal OSErr PBDTGetIconSync(DTPBPtr paramBlock)
  1948.  TWOWORDINLINE(0x7023, 0xA260);
  1949.  
  1950. #if !GENERATINGCFM
  1951. #pragma parameter __D0 PBDTGetIconAsync(__A0)
  1952. #endif
  1953. extern pascal OSErr PBDTGetIconAsync(DTPBPtr paramBlock)
  1954.  TWOWORDINLINE(0x7023, 0xA660);
  1955. #define PBDTGetIconInfo(pb, async) ((async) ? PBDTGetIconInfoAsync(pb) : PBDTGetIconInfoSync(pb))
  1956.  
  1957. #if !GENERATINGCFM
  1958. #pragma parameter __D0 PBDTGetIconInfoSync(__A0)
  1959. #endif
  1960. extern pascal OSErr PBDTGetIconInfoSync(DTPBPtr paramBlock)
  1961.  TWOWORDINLINE(0x7024, 0xA260);
  1962.  
  1963. #if !GENERATINGCFM
  1964. #pragma parameter __D0 PBDTGetIconInfoAsync(__A0)
  1965. #endif
  1966. extern pascal OSErr PBDTGetIconInfoAsync(DTPBPtr paramBlock)
  1967.  TWOWORDINLINE(0x7024, 0xA660);
  1968. #define PBDTAddAPPL(pb, async) ((async) ? PBDTAddAPPLAsync(pb) : PBDTAddAPPLSync(pb))
  1969.  
  1970. #if !GENERATINGCFM
  1971. #pragma parameter __D0 PBDTAddAPPLSync(__A0)
  1972. #endif
  1973. extern pascal OSErr PBDTAddAPPLSync(DTPBPtr paramBlock)
  1974.  TWOWORDINLINE(0x7025, 0xA260);
  1975.  
  1976. #if !GENERATINGCFM
  1977. #pragma parameter __D0 PBDTAddAPPLAsync(__A0)
  1978. #endif
  1979. extern pascal OSErr PBDTAddAPPLAsync(DTPBPtr paramBlock)
  1980.  TWOWORDINLINE(0x7025, 0xA660);
  1981. #define PBDTRemoveAPPL(pb, async) ((async) ? PBDTRemoveAPPLAsync(pb) : PBDTRemoveAPPLSync(pb))
  1982.  
  1983. #if !GENERATINGCFM
  1984. #pragma parameter __D0 PBDTRemoveAPPLSync(__A0)
  1985. #endif
  1986. extern pascal OSErr PBDTRemoveAPPLSync(DTPBPtr paramBlock)
  1987.  TWOWORDINLINE(0x7026, 0xA260);
  1988.  
  1989. #if !GENERATINGCFM
  1990. #pragma parameter __D0 PBDTRemoveAPPLAsync(__A0)
  1991. #endif
  1992. extern pascal OSErr PBDTRemoveAPPLAsync(DTPBPtr paramBlock)
  1993.  TWOWORDINLINE(0x7026, 0xA660);
  1994. #define PBDTGetAPPL(pb, async) ((async) ? PBDTGetAPPLAsync(pb) : PBDTGetAPPLSync(pb))
  1995.  
  1996. #if !GENERATINGCFM
  1997. #pragma parameter __D0 PBDTGetAPPLSync(__A0)
  1998. #endif
  1999. extern pascal OSErr PBDTGetAPPLSync(DTPBPtr paramBlock)
  2000.  TWOWORDINLINE(0x7027, 0xA260);
  2001.  
  2002. #if !GENERATINGCFM
  2003. #pragma parameter __D0 PBDTGetAPPLAsync(__A0)
  2004. #endif
  2005. extern pascal OSErr PBDTGetAPPLAsync(DTPBPtr paramBlock)
  2006.  TWOWORDINLINE(0x7027, 0xA660);
  2007. #define PBDTSetComment(pb, async) ((async) ? PBDTSetCommentAsync(pb) : PBDTSetCommentSync(pb))
  2008.  
  2009. #if !GENERATINGCFM
  2010. #pragma parameter __D0 PBDTSetCommentSync(__A0)
  2011. #endif
  2012. extern pascal OSErr PBDTSetCommentSync(DTPBPtr paramBlock)
  2013.  TWOWORDINLINE(0x7028, 0xA260);
  2014.  
  2015. #if !GENERATINGCFM
  2016. #pragma parameter __D0 PBDTSetCommentAsync(__A0)
  2017. #endif
  2018. extern pascal OSErr PBDTSetCommentAsync(DTPBPtr paramBlock)
  2019.  TWOWORDINLINE(0x7028, 0xA660);
  2020. #define PBDTRemoveComment(pb, async) ((async) ? PBDTRemoveCommentAsync(pb) : PBDTRemoveCommentSync(pb))
  2021.  
  2022. #if !GENERATINGCFM
  2023. #pragma parameter __D0 PBDTRemoveCommentSync(__A0)
  2024. #endif
  2025. extern pascal OSErr PBDTRemoveCommentSync(DTPBPtr paramBlock)
  2026.  TWOWORDINLINE(0x7029, 0xA260);
  2027.  
  2028. #if !GENERATINGCFM
  2029. #pragma parameter __D0 PBDTRemoveCommentAsync(__A0)
  2030. #endif
  2031. extern pascal OSErr PBDTRemoveCommentAsync(DTPBPtr paramBlock)
  2032.  TWOWORDINLINE(0x7029, 0xA660);
  2033. #define PBDTGetComment(pb, async) ((async) ? PBDTGetCommentAsync(pb) : PBDTGetCommentSync(pb))
  2034.  
  2035. #if !GENERATINGCFM
  2036. #pragma parameter __D0 PBDTGetCommentSync(__A0)
  2037. #endif
  2038. extern pascal OSErr PBDTGetCommentSync(DTPBPtr paramBlock)
  2039.  TWOWORDINLINE(0x702A, 0xA260);
  2040.  
  2041. #if !GENERATINGCFM
  2042. #pragma parameter __D0 PBDTGetCommentAsync(__A0)
  2043. #endif
  2044. extern pascal OSErr PBDTGetCommentAsync(DTPBPtr paramBlock)
  2045.  TWOWORDINLINE(0x702A, 0xA660);
  2046. #define PBDTFlush(pb, async) ((async) ? PBDTFlushAsync(pb) : PBDTFlushSync(pb))
  2047.  
  2048. #if !GENERATINGCFM
  2049. #pragma parameter __D0 PBDTFlushSync(__A0)
  2050. #endif
  2051. extern pascal OSErr PBDTFlushSync(DTPBPtr paramBlock)
  2052.  TWOWORDINLINE(0x702B, 0xA260);
  2053.  
  2054. #if !GENERATINGCFM
  2055. #pragma parameter __D0 PBDTFlushAsync(__A0)
  2056. #endif
  2057. extern pascal OSErr PBDTFlushAsync(DTPBPtr paramBlock)
  2058.  TWOWORDINLINE(0x702B, 0xA660);
  2059. #define PBDTReset(pb, async) ((async) ? PBDTResetAsync(pb) : PBDTResetSync(pb))
  2060.  
  2061. #if !GENERATINGCFM
  2062. #pragma parameter __D0 PBDTResetSync(__A0)
  2063. #endif
  2064. extern pascal OSErr PBDTResetSync(DTPBPtr paramBlock)
  2065.  TWOWORDINLINE(0x702C, 0xA260);
  2066.  
  2067. #if !GENERATINGCFM
  2068. #pragma parameter __D0 PBDTResetAsync(__A0)
  2069. #endif
  2070. extern pascal OSErr PBDTResetAsync(DTPBPtr paramBlock)
  2071.  TWOWORDINLINE(0x702C, 0xA660);
  2072. #define PBDTGetInfo(pb, async) ((async) ? PBDTGetInfoAsync(pb) : PBDTGetInfoSync(pb))
  2073.  
  2074. #if !GENERATINGCFM
  2075. #pragma parameter __D0 PBDTGetInfoSync(__A0)
  2076. #endif
  2077. extern pascal OSErr PBDTGetInfoSync(DTPBPtr paramBlock)
  2078.  TWOWORDINLINE(0x702D, 0xA260);
  2079.  
  2080. #if !GENERATINGCFM
  2081. #pragma parameter __D0 PBDTGetInfoAsync(__A0)
  2082. #endif
  2083. extern pascal OSErr PBDTGetInfoAsync(DTPBPtr paramBlock)
  2084.  TWOWORDINLINE(0x702D, 0xA660);
  2085.  
  2086. #if !GENERATINGCFM
  2087. #pragma parameter __D0 PBDTOpenInform(__A0)
  2088. #endif
  2089. extern pascal OSErr PBDTOpenInform(DTPBPtr paramBlock)
  2090.  TWOWORDINLINE(0x702E, 0xA060);
  2091. #define PBDTDelete(pb, async) ((async) ? PBDTDeleteAsync(pb) : PBDTDeleteSync(pb))
  2092.  
  2093. #if !GENERATINGCFM
  2094. #pragma parameter __D0 PBDTDeleteSync(__A0)
  2095. #endif
  2096. extern pascal OSErr PBDTDeleteSync(DTPBPtr paramBlock)
  2097.  TWOWORDINLINE(0x702F, 0xA060);
  2098.  
  2099. #if !GENERATINGCFM
  2100. #pragma parameter __D0 PBDTDeleteAsync(__A0)
  2101. #endif
  2102. extern pascal OSErr PBDTDeleteAsync(DTPBPtr paramBlock)
  2103.  TWOWORDINLINE(0x702F, 0xA460);
  2104. /*  VolumeMount traps  */
  2105.  
  2106. #if !GENERATINGCFM
  2107. #pragma parameter __D0 PBGetVolMountInfoSize(__A0)
  2108. #endif
  2109. extern pascal OSErr PBGetVolMountInfoSize(ParmBlkPtr paramBlock)
  2110.  TWOWORDINLINE(0x703F, 0xA260);
  2111.  
  2112. #if !GENERATINGCFM
  2113. #pragma parameter __D0 PBGetVolMountInfo(__A0)
  2114. #endif
  2115. extern pascal OSErr PBGetVolMountInfo(ParmBlkPtr paramBlock)
  2116.  TWOWORDINLINE(0x7040, 0xA260);
  2117.  
  2118. #if !GENERATINGCFM
  2119. #pragma parameter __D0 PBVolumeMount(__A0)
  2120. #endif
  2121. extern pascal OSErr PBVolumeMount(ParmBlkPtr paramBlock)
  2122.  TWOWORDINLINE(0x7041, 0xA260);
  2123. /*  FSp traps  */
  2124. extern pascal OSErr FSMakeFSSpec(short vRefNum, long dirID, ConstStr255Param fileName, FSSpec *spec)
  2125.  TWOWORDINLINE(0x7001, 0xAA52);
  2126. extern pascal OSErr FSpOpenDF(const FSSpec *spec, SInt8 permission, short *refNum)
  2127.  TWOWORDINLINE(0x7002, 0xAA52);
  2128. extern pascal OSErr FSpOpenRF(const FSSpec *spec, SInt8 permission, short *refNum)
  2129.  TWOWORDINLINE(0x7003, 0xAA52);
  2130. extern pascal OSErr FSpCreate(const FSSpec *spec, OSType creator, OSType fileType, ScriptCode scriptTag)
  2131.  TWOWORDINLINE(0x7004, 0xAA52);
  2132. extern pascal OSErr FSpDirCreate(const FSSpec *spec, ScriptCode scriptTag, long *createdDirID)
  2133.  TWOWORDINLINE(0x7005, 0xAA52);
  2134. extern pascal OSErr FSpDelete(const FSSpec *spec)
  2135.  TWOWORDINLINE(0x7006, 0xAA52);
  2136. extern pascal OSErr FSpGetFInfo(const FSSpec *spec, FInfo *fndrInfo)
  2137.  TWOWORDINLINE(0x7007, 0xAA52);
  2138. extern pascal OSErr FSpSetFInfo(const FSSpec *spec, const FInfo *fndrInfo)
  2139.  TWOWORDINLINE(0x7008, 0xAA52);
  2140. extern pascal OSErr FSpSetFLock(const FSSpec *spec)
  2141.  TWOWORDINLINE(0x7009, 0xAA52);
  2142. extern pascal OSErr FSpRstFLock(const FSSpec *spec)
  2143.  TWOWORDINLINE(0x700A, 0xAA52);
  2144. extern pascal OSErr FSpRename(const FSSpec *spec, ConstStr255Param newName)
  2145.  TWOWORDINLINE(0x700B, 0xAA52);
  2146. extern pascal OSErr FSpCatMove(const FSSpec *source, const FSSpec *dest)
  2147.  TWOWORDINLINE(0x700C, 0xAA52);
  2148. extern pascal OSErr FSpExchangeFiles(const FSSpec *source, const FSSpec *dest)
  2149.  TWOWORDINLINE(0x700F, 0xAA52);
  2150. /*
  2151.     PBGetAltAccess and PBSetAltAccess are obsolete and will not be supported 
  2152.     on PowerPC. Equivalent functionality is provided by the routines 
  2153.     PBGetForeignPrivs and PBSetForeignPrivs.
  2154. */
  2155. #if OLDROUTINENAMES && !GENERATINGCFM
  2156. #define PBGetAltAccess(pb, async) ((async) ? PBGetAltAccessAsync(pb) : PBGetAltAccessSync(pb))
  2157.  
  2158. #if !GENERATINGCFM
  2159. #pragma parameter __D0 PBGetAltAccessSync(__A0)
  2160. #endif
  2161. extern pascal OSErr PBGetAltAccessSync(HParmBlkPtr paramBlock)
  2162.  TWOWORDINLINE(0x7060, 0xA060);
  2163.  
  2164. #if !GENERATINGCFM
  2165. #pragma parameter __D0 PBGetAltAccessAsync(__A0)
  2166. #endif
  2167. extern pascal OSErr PBGetAltAccessAsync(HParmBlkPtr paramBlock)
  2168.  TWOWORDINLINE(0x7060, 0xA460);
  2169. #define PBSetAltAccess(pb, async) ((async) ? PBSetAltAccessAsync(pb) : PBSetAltAccessSync(pb))
  2170.  
  2171. #if !GENERATINGCFM
  2172. #pragma parameter __D0 PBSetAltAccessSync(__A0)
  2173. #endif
  2174. extern pascal OSErr PBSetAltAccessSync(HParmBlkPtr paramBlock)
  2175.  TWOWORDINLINE(0x7061, 0xA060);
  2176.  
  2177. #if !GENERATINGCFM
  2178. #pragma parameter __D0 PBSetAltAccessAsync(__A0)
  2179. #endif
  2180. extern pascal OSErr PBSetAltAccessAsync(HParmBlkPtr paramBlock)
  2181.  TWOWORDINLINE(0x7061, 0xA460);
  2182. #endif
  2183.  
  2184. #if !GENERATINGCFM
  2185. #pragma parameter __D0 PBShareSync(__A0)
  2186. #endif
  2187. extern pascal OSErr PBShareSync(CMovePBPtr paramBlock)
  2188.  TWOWORDINLINE(0x7042, 0xA260);
  2189.  
  2190. #if !GENERATINGCFM
  2191. #pragma parameter __D0 PBShareAsync(__A0)
  2192. #endif
  2193. extern pascal OSErr PBShareAsync(CMovePBPtr paramBlock)
  2194.  TWOWORDINLINE(0x7042, 0xA660);
  2195.  
  2196. #if !GENERATINGCFM
  2197. #pragma parameter __D0 PBUnshareSync(__A0)
  2198. #endif
  2199. extern pascal OSErr PBUnshareSync(CMovePBPtr paramBlock)
  2200.  TWOWORDINLINE(0x7043, 0xA260);
  2201.  
  2202. #if !GENERATINGCFM
  2203. #pragma parameter __D0 PBUnshareAsync(__A0)
  2204. #endif
  2205. extern pascal OSErr PBUnshareAsync(CMovePBPtr paramBlock)
  2206.  TWOWORDINLINE(0x7043, 0xA660);
  2207.  
  2208. #if !GENERATINGCFM
  2209. #pragma parameter __D0 PBGetUGEntrySync(__A0)
  2210. #endif
  2211. extern pascal OSErr PBGetUGEntrySync(CMovePBPtr paramBlock)
  2212.  TWOWORDINLINE(0x7044, 0xA260);
  2213.  
  2214. #if !GENERATINGCFM
  2215. #pragma parameter __D0 PBGetUGEntryAsync(__A0)
  2216. #endif
  2217. extern pascal OSErr PBGetUGEntryAsync(CMovePBPtr paramBlock)
  2218.  TWOWORDINLINE(0x7044, 0xA660);
  2219.  
  2220. #ifdef __CFM68K__
  2221. #pragma lib_export off
  2222. #endif
  2223.  
  2224. #if GENERATINGPOWERPC
  2225. #pragma options align=reset
  2226. #endif
  2227.  
  2228. #ifdef __cplusplus
  2229. }
  2230. #endif
  2231.  
  2232. #endif /* __FILES__ */
  2233.